hadoop多硬盘挂载

原创
2017/06/26 14:26
阅读数 308

环境说明

9个节点,7个DataNode,每个DataNode有3块硬盘,两块是后来加的,挂载在系统所在文件系统。

hdfs-site.xml配置

把用户名与组都分给hadoop用户。命令为: chown -R hadoop:hadoop  /home/hadoop/develop/data/data1,chown -R hadoop:hadoop  /home/hadoop/develop/data/data2

<property>
   <name>dfs.datanode.data.dir</name>
   <value>
      /home/hadoop/develop/hadoop/hdfs/data,
      /home/hadoop/develop/data/data1,
      /home/hadoop/develop/data/data2
   </value>
</property>

结果

这样hdfs在写数据的时候就会三个目录中轮询,一般这些目录是不同的块设备,不存在的目录会被忽略掉。

建议

如果有多个磁盘不建议做raid,因为做raid会有性能损失,还会导致一个磁盘坏了,整个硬盘也不能用了,而hadoop可以规避这个问题。

遇到的问题

第一次将挂载硬盘的目录直接作为HDFS的data目录,start-all.sh之后,所有的DataNode没有启动,看日志发现是对data1和data2目录没有权限(data1和data2分别挂载着一块硬盘),但是已经将data1和data2的目录权限改成777了。

查找发现原因:data1和data2所挂载的硬盘的根目录下有lost+found这个文件夹,而这个文件的权限是root,导致在hadoop用户下启动的hadoop在扫描配置文件中配置的data目录时,发现有文件hadoop用户没有写权限,就报错,DataNode进程也没启动。

解决方法:在data1和data2目录下分别建立hdfs文件夹,将hadoop的dfs.datanode.data.dir指向hdfs文件夹。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部