数据存储框架11
今天下午完成了扩容的测试。两个数据节点node444和node555除了系统盘(80G/SSD)外,每节点还有3块1T硬盘。测试内容为将node444上的三块1T硬盘容量加入到Hadoop资源池之中,然后上传存入一些文件。参考文档[1]和[2]。具体过程如下。
1.在数据节点node444上,将三块1TSATA硬盘(/dev/sdb,/dev/sdc和/dev/sdd)分区、格式化和挂载到node444的本地目录。
# fdisk /dev/sdb (创建一个主分区sdb1) # fdisk /dev/sdc (创建一个主分区sdc1) # fdisk /dev/sdd (创建一个主分区sdd1) # mkfs.ext4 /dev/sdb1 # mkfs.ext4 /dev/sdc1 # mkfs.ext4 /dev/sdd1 # mkdir -p /data/stor_a # mkdir -p /data/stor_b # mkdir -p /data/stor_c # mount /dev/sdb1 /data/stor_a # mount /dev/sdc1 /data/stor_b # mount /dev/sdd1 /data/stor_c # vim /etc/fstab (开机自动挂载) /dev/sdb1 /data/stor_a ext4 defaults 0 0 /dev/sdc1 /data/stor_b ext4 defaults 0 0 /dev/sdd1 /data/stor_c ext4 defaults 0 0
2. 在数据节点node444上,在hdfs-site.xml写入配置路径。其中“/opt/hadoop_tmp/dfs/data”是在core-site.xml中设定的路径,/data/stor_a是新增硬盘容量对应的挂载目录。
# vim /usr/hadoop-2.10.0/etc/hadoop/hdfs-site.xml <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.datanode.data.dir</name> <value> file:/opt/hadoop_tmp/dfs/data/, file:/data/stor_a, file:/data/stor_b, file:/data/stor_c </value> </property>
3. 在数据节点node444上,重启datanode服务
# cd /usr/hadoop-2.10.0/sbin # ./hadoop-daemon.sh stop datanode stopping datanode # jps 11276 Jps (可以观察到没有列出datanode) # ./hadoop-daemon.sh start datanode starting datanode, logging to /usr/hadoop-2.10.0/logs/hadoop-root-datanode-node444.out
4. 在任一节点上查看增加后的容量,可以看到node444的容量为2.73T,集群的总容量也发生了变化,即三块1T的容量已经加到资源池中。
# hadoop dfsadmin -report DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. Configured Capacity: 3054216757248 (2.78 TB) Present Capacity: 2897777172480 (2.64 TB) DFS Remaining: 2897528950784 (2.64 TB) DFS Used: 248221696 (236.72 MB) DFS Used%: 0.01% Under replicated blocks: 0 Blocks with corrupt replicas: 0 Missing blocks: 0 Missing blocks (with replication factor 1): 0 Pending deletion blocks: 0 ------------------------------------------------- Live datanodes (2): Name: 172.16.20.40:50010 (node444) Hostname: node444 Decommission Status : Normal Configured Capacity: 3003662340096 (2.73 TB) DFS Used: 124162048 (118.41 MB) Non DFS Used: 3104387072 (2.89 GB) DFS Remaining: 2850352889856 (2.59 TB) DFS Used%: 0.00% DFS Remaining%: 94.90% Configured Cache Capacity: 0 (0 B) Cache Used: 0 (0 B) Cache Remaining: 0 (0 B) Cache Used%: 100.00% Cache Remaining%: 0.00% Xceivers: 1 Last contact: Thu Dec 12 03:24:21 EST 2019 Last Block Report: Thu Dec 12 03:13:42 EST 2019
中间遇到并已经解决的问题:
– 在扩容的数据节点上必须重启datanode,否则无法生效。
– 在写配置文件hdfs-site.xml时忘写一个< /property>,排查花了一些时间。
关于上传文件,在NameNode的node333上使用命令行可以完成对应任务。我把node333中的jdk安装包和pdsh压缩包放到hadoop中,如下。
[root@node333 ~]# ls anaconda-ks.cfg hadoop-2.10.0.tar.gz jdk-7u45-linux-x64.rpm pdsh-2.26 pdsh-2.26.tar.bz2 [root@node333 ~]# hdfs dfs -put jdk-7u45-linux-x64.rpm /20191212 [root@node333 ~]# hdfs dfs -put pdsh-2.26.tar.bz2 hdfs://node333:9000/20191212 [root@node333 ~]# hdfs dfs -ls /20191212 Found 2 items -rw-r--r-- 2 root supergroup 122585894 2019-12-12 01:58 /20191212/jdk-7u45-linux-x64.rpm -rw-r--r-- 2 root supergroup 490732 2019-12-12 02:01 /20191212/pdsh-2.26.tar.bz2
遗留的问题:
– 在Web界面中无法上传文件,估计是权限配置的问题,暂时没有找到解决方法。网上有文章[3]提到“By Default HDFS Web UI is read only, and files or directories can’t be created/modified.”
– 参考[2]和[4]修改hdfs-site.xml尝试让节点下线,发现指定下线节点并未出现Decommission状态。原因需要进一步调查。