生产环境下集群搭建时就需配置,如果投入使用在配置,会造成一定的数据损失
3.1、NameNode多目录配置
1)NameNode的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性
- 具体配置如下
(1)在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>
注意:因为每台服务器节点的磁盘情况不同,所以这个配置配完之后,可以选择不分发(我分发了)
(2)停止集群,删除三台节点的 data 和 logs 中所有数据。
[pcz@hadoop1 hadoop-3.1.3]$ pczhd stop
[pcz@hadoop1 hadoop]$ rm -rf /opt/module/hadoop-3.1.3/data/ /opt/module/hadoop-3.1.3/logs/
[pcz@hadoop2 ~]$ rm -rf /opt/module/hadoop-3.1.3/data/ /opt/module/hadoop-3.1.3/logs/
[pcz@hadoop3 ~]$ rm -rf /opt/module/hadoop-3.1.3/data/ /opt/module/hadoop-3.1.3/logs/
(3)格式化集群并启动。
[pcz@hadoop1 hadoop-3.1.3]$ cd /opt/module/hadoop-3.1.3/
[pcz@hadoop1 hadoop-3.1.3]$ bin/hdfs namenode -format
[pcz@hadoop1 hadoop-3.1.3]$ sbin/start-dfs.sh
3)查看结果
[pcz@hadoop1 hadoop-3.1.3]$ ll /opt/module/hadoop-3.1.3/data/dfs/
总用量 0
drwx------. 3 pcz root 40 1月 10 19:22 data
drwxr-xr-x. 3 pcz root 40 1月 10 19:22 name1
drwxr-xr-x. 3 pcz root 40 1月 10 19:22 name2
检查 name1 和 name2 里面的内容,发现一模一样。
3.2 DataNode 多目录配置
1)DataNode 可以配置成多个目录,每个目录存储的数据不一样(数据不是副本)
2)具体配置如下
(1)先关闭集群:pczhd.stop
(3)在 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>
(3)删除三台节点的 data 和 logs 中所有数据。
[pcz@hadoop1 hadoop]$ rm -rf /opt/module/hadoop-3.1.3/data/ /opt/module/hadoop-3.1.3/logs/
[pcz@hadoop2 ~]$ rm -rf /opt/module/hadoop-3.1.3/data/ /opt/module/hadoop-3.1.3/logs/
[pcz@hadoop3 ~]$ rm -rf /opt/module/hadoop-3.1.3/data/ /opt/module/hadoop-3.1.3/logs/
(4)格式化namenode:
[pcz@hadoop1 hadoop]$ cd /opt/module/hadoop-3.1.3/
[pcz@hadoop1 hadoop-3.1.3]$ bin/hdfs namenode -format
3)查看结果
[pcz@hadoop1 hadoop-3.1.3]$ sbin/start-dfs.sh
[pcz@hadoop1 hadoop-3.1.3]$ ll /opt/module/hadoop-3.1.3/data/dfs/
总用量 0
drwx------. 3 pcz root 40 1月 10 19:36 data1
drwx------. 3 pcz root 40 1月 10 19:36 data2
drwxr-xr-x. 3 pcz root 40 1月 10 19:36 name1
drwxr-xr-x. 3 pcz root 40 1月 10 19:36 name2
4)向集群上传一个文件,再次观察两个文件夹里面的内容发现不一致(一个有数一个没有)
[pcz@hadoop1 hadoop-3.1.3]$ hadoop fs -put a.txt /put
3.3 集群数据均衡之磁盘间数据均衡
生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x 新特性)
(1)生成均衡计划(我们只有一块磁盘,不会生成计划)
hdfs diskbalancer -plan hadoop1
(2)执行均衡计划
hdfs diskbalancer -execute hadoop1.plan.json
(3)查看当前均衡任务的执行情况
hdfs diskbalancer -query hadoop1
(4)取消均衡任务
hdfs diskbalancer -cancel hadoop1.plan.json