hadoop 用户创建data目录时 DataNode无法启动

场景:Centos 6.4 X64

     hadoop 0.20.205

配置文件

hdfs-site.xml

    <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>


<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/hdfs/name</value>
</property>

<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/hdfs/data</value>
</property>


<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>


在创建dfs.data.dir所用的data目录时,直接用hadoop用户创建,

mkidr -p /usr/local/hdoop/hdfs/data

然后,格式化,启动时,namenode节点都可以启动

在Datanode上执行jps时,

[hadoop@DataNode1 local]# jps
6763 TaskTracker
6816 Jps

没有datanode的进程,不论怎么格式化,都无法使DataNode进程出现

后面,去查看DataNode1节点上的日志

2013-04-10 20:50:49,100 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /usr/local/hadoop/hdfs/data, expected: rwxr-xr-x, while actual: rwxrwxr-x
2013-04-10 20:50:49,100 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid.

提示权限不符合要求

chmod 755 /usr/local/hadoop/hdfs/data

重新启动

[hadoop@DataNode1 data]$ jps
7398 TaskTracker
7291 DataNode
7707 Jps


DataNode出现

为了核实root用户和hadoop用户的创建文件夹的区别

[root@NameNode home]# mkdir data
[root@NameNode home]# ll
总用量 24
drwxr-xr-x. 2 root   root    4096 4月  10 21:03 data
drwx------. 5 hadoop hadoop  4096 4月  10 20:45 hadoop
drwx------. 2 root   root   16384 4月   8 09:28 lost+found

可以看到,root用户创建的文件夹权限符合要求

再用hadoop用户创建一个文件夹

[hadoop@NameNode ~]$ mkdir name
[hadoop@NameNode ~]$ ll
总用量 4
drwxrwxr-x. 2 hadoop hadoop 4096 4月  10 21:04 name
[hadoop@NameNode ~]$ 

权限变了,造成DataNode无法启动。

结语:开始为了不用修改文件夹的属主,就直接用hadoop用户创建文件夹,结果因权限的问题,造成DataNode无法启动。

收获:1、了解了不同用户组权限的不同,

           2、遇到问题,一定要刨根问底,不能似是而非,否则,浪费了时间,自己却一知半解,这种状态是最坏的状态。

           3、多查看日志,从日志中发现问题。




你可能感兴趣的:(hadoop 用户创建data目录时 DataNode无法启动)