hadoop 优化之hdfs多目录

411 阅读3分钟

本篇文章主要是对hadoop的hdfs进行调优,包括NameNode的多目录配置优化,DataNode的多目录配置优化,集群磁盘之间的数据均衡优化,后续还会更新 。不足之处,欢迎斧正!


目录

NameNode多目录配置

NameNode的本地目录可以配置成多个,每个目录存放的内容也相同,增加可靠性

配置规划

bdc112bdc113114
NameNode1 NameNode2 bdc112bdc113bdc114

具体配置内容如下:

配置步骤:
setup1:在hdfs-site.xml文件中添加如下内容

注意:
在配置时,会因为每台服务器节点的磁盘情况不同,所以这个配置配完之后,可以选择不分发,但是可以到对应的节点上进行配置。

<property>
     <name>dfs.namenode.name.dir</name>
     <value>file://${hadoop.tmp.dir}/dfs/name01,file://${hadoop.tmp.dir}/dfs/name02</value>
</property>

setup2:停止集群,删除三台节点的data(tmp)和logs中所有数据

[lqs@bdc112 hadoop-3.1.3]$ rm -rf tmp/ logs/
[lqs@bdc113 hadoop-3.1.3]$ rm -rf tmp/ logs/
[lqs@bdc114 hadoop-3.1.3]$ rm -rf tmp/ logs/

setup3:格式化集群并启动

[lqs@bdc112 hadoop-3.1.3]$ bin/hdfs namenode -format
[lqs@bdc112 hadoop-3.1.3]$ sbin/start-dfs.sh

查看配置结果

[lqs@bdc112 dfs]$ ll
总用量 12
drwx------. 3 lqs lqs 4096 12月 17 08:03 data
drwxrwxr-x. 3 lqs lqs 4096 12月 17 08:03 name01
drwxrwxr-x. 3 lqs lqs 4096 12月 17 08:03 name02
#注意:name1和name2里面的内容是完全一样的

DataNode多目录配置

DataNode也可以配置成多个目录,且每个目录存储的数据是不一样的,即常说的:这里的数据不是副本,就是说没有备份,这里

配置规划

注意:
每个目录存储的数据都是不一样的

bdc112bdc113114
目录112-1,6GB 目录112-2,12GB bdc112硬盘113-1,3GB 目录113-2,6GB bdc113硬盘114-1,24GB bdc114

具体配置内容如下:

需要要在hdfs-site.xml文件中添加如下内容

<property>
     <name>dfs.datanode.data.dir</name>
     <value>file://${hadoop.tmp.dir}/dfs/data01,file://${hadoop.tmp.dir}/dfs/data02</value>
</property>

查看结果

[lqs@bdc112 dfs]$ ll
总用量 12
drwx------. 3 lqs lqs 4096 12月  17 14:22 data01
drwx------. 3 lqs lqs 4096 12月  17 14:22 data02
drwxrwxr-x. 3 lqs lqs 4096 12月 17 14:22 name01
drwxrwxr-x. 3 lqs lqs 4096 12月 17 14:23 name02

向集群传数据

向集群上传一个文件,再次观察两个文件夹里面的内容发现不一致(一个有数一个没有)

[lqs@bdc112 hadoop-3.1.3]$ hadoop fs -put wcinput/word.txt /test

集群-磁盘之间的数据均衡

在生产环境中,往往会由于硬盘空间的不足需要添加一块磁盘,刚添加的磁盘是没有数据的,可以执行磁盘数据均衡的命令,这也是hadoop3.x的新特性

规划

bdc112bdc113114
硬盘112-1,6GB 硬盘112-2,0GB bdc112硬盘113-1,3GB 硬盘113-2,6GB bdc113硬盘114-1,24GB bdc114

setup1:生成均衡计划

hdfs diskbalancer -plan bdc113

setup2:执行均衡计划

hdfs diskbalancer -execute bdc113.plan.json

setup3:查看当前均衡任务执行情况

hdfs diskbalancer -query bdc113

setup4:取消均衡任务

hdfs diskbalancer -cancel bdc113.plan.json