3.1 NameNode多目录配置
-
NameNode 的本地目录可以配置成多个, 且每个目录存放内容相同 ,增加了可靠性
-
具体配置如下:
-
在 hdfs-site.xml 文件中添加如下内容
<property> <name>dfs.namenode.name.dir</name> <value>file://${hadoop.tmp.dir}/dfs/name1,file://${hadoop.tmp.dir}/dfs/name2</value> </property>
注意:因为每台服务器节点的磁盘情况不同,所以这个配置文件配置完成后,可以选择不分发。
-
停止集群,删除三台节点的 data 和 logs 中所有数据,rm -rf data/ logs/
-
格式化集群并启动,bin/hdfs namenode -format,sbin/start-dfs.sh
-
查看结果,进入dfs路径下,查看发现name1和name2文件里面的内容,一模一样
3.2 DataNode多目录配置
-
DataNode 可以配置成多个目录, 每个目录存储的数据不一样 (数据不是副本)
- 具体配置如下,在 hdfs-site.xml 文件中添加如下内容
<property> <name>dfs.datanode.data.dir</name> <value>file://${hadoop.tmp.dir}/dfs/data1,file://${hadoop.tmp.dir}/dfs/data2</value> </property>
- 查看结果,进入dfs目录下,有data1和data2文件夹
-
向集群上传一个文件,再次观察两个文件夹里面的内容发现不一致(一个有数一个没有)
3.3 集群数据均衡之磁盘间数据均衡
生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可
以执行磁盘数据均衡命令。多块硬盘(Hadoop3.x 新特性)
- 生成均衡计划:hdfs diskbalancer -plan hadoop102
- 执行均衡计划:hdfs diskbalancer -execute hadoop102.plan.json
- 查看当前均衡任务的执行情况:hdfs diskbalancer -query hadoop102
- 取消均衡任务:hdfs diskbalancer -cancel hadoop102.plan.json