hadoop datanode启动失败(All directories in dfs.data.dir are invalid)


由于hadoop节点的磁盘满了,导致节点死掉,今天对其进行扩容。首先,将原节点的数据拷贝到目标节点下,从而避免数据的丢失,但是在执行hadoop_daemon.sh start datanode后没有启动datanode,查看log如下:

2014-04-17 11:44:06,200 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /hadoop_data/hadoop/hdfs/data/hadoop-hadoop, expected: rwxr-xr-x, while actual: rwxrwxr-x
2014-04-17 11:44:06,200 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid.
2014-04-17 11:44:06,201 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode
2014-04-17 11:44:06,202 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: 

注意到:2014-04-17 11:44:06,200 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /hadoop_data/hadoop/hdfs/data/hadoop-hadoop, expected: rwxr-xr-x, while actual: rwxrwxr-x
于是网上找资料,看到只要按提示修改这个权限就ok了。原因:多了用户组的写权限能造成集群系统的无法启动。
于是,执行以下命令: chmod g-w /hadoop_data/hadoop/hdfs/data/hadoop-hadoop 结果该命令没有起作用,怪事!!! 百思不得其解,想到肯定是该目录做了权限设置不让修改。于是联系公司运维人员,才知/hadoop_data是个nas盘挂载点,哎,无语的nas。
最后,在来回顾以下为何会出现这个状况?首先,我的datanode新的数据存储位置/hadoop_data下的数据是从原来的位置/data_hadoop下copy过来的,这样的话正常情况是权限不会变的,hadoop肯定是不存在权限的问题。所以可见都是nas惹的货,它将原来的drwxr-xr-x权限给我改为了drwxrwxr-x,从而出现了datanode启动不了的麻烦!!


相关内容