一、HDFS 为什么要配置多目录存储
正常情况下,一台机器只有一块硬盘是不够的,会造成 HDFS 存储空间紧张,因此需要对 DataNode 进行磁盘扩展
二、配置 HDFS 多目录存储
1.首先要看一下机器上的磁盘使用情况
注意,这里一共有 4 个目录可以提供存储空间,即:/、/hd3、/hd4、/hd2
2.在 hdfs-site.xml 文件中配置多目录,这里需要注意新挂载磁盘的访问权限问题
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/data1,file:///hd2/dfs/data2,file:///hd3/dfs/data3,file:///hd4/dfs/data4</value>
</property>
注意,hdfs-site.xml 文件配置 value 中的 file,要对应磁盘中已有的存储目录,即:/、/hd3、/hd4、/hd2。别没有的还往上写,瞎写,那肯定出问题啊。
3.增加磁盘后,保证每个目录数据均衡
- 开启数据均衡命令:bin/start-balancer.sh –threshold 10。参数 10 代表的是集群中各个节点的磁盘空间利用率相差不超过10%,可根据实际情况进行调整。
- 停止数据均衡命令:bin/stop-balancer.sh
三、注意事项总结
- 新挂载磁盘的访问权限问题,一般新挂载的磁盘是root权限,配置一下:chmod 777 ......
- hdfs-site.xml 文件配置 value 中的 file,要对应磁盘中已有的存储目录
- 数据均衡不能一直开启,因为它会不停的去监控数据分配状态,一旦有不均衡就会拷贝,消耗性能。