首页 > 大数据 > 数据存储框架11

数据存储框架11

2019年12月12日 16点16分

今天下午完成了扩容的测试。两个数据节点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界面中可以看到文件目录和列表。
2019-12-12 17-02-56屏幕截图

遗留的问题:
– 在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状态。原因需要进一步调查。

分类: 大数据 标签:
本文的评论功能被关闭了.