我遇到了将本地文件部署到hdfs的问题,发现对于datanode和namenode我应该有“drwx ------”。 hdfs中datanode和namenode的初始权限状态。
drwx------ 3 hduser hadoop 4096 Mar 2 16:45 datanode
drwxr-xr-x 3 hduser hadoop 4096 Mar 2 17:30 namenode
datanode的权限更改为755
hduser@pradeep:~$ chmod -R 755 /usr/local/hadoop_store/hdfs/
hduser@pradeep:~$ ls -l /usr/local/hadoop_store/hdfs/
total 8
drwxr-xr-x 3 hduser hadoop 4096 Mar 2 16:45 datanode
drwxr-xr-x 3 hduser hadoop 4096 Mar 2 17:30 namenode
启动start-dfs.sh后,datanode没有启动,对datanode的权限也恢复到原始状态。
hduser@pradeep:~$ $HADOOP_HOME/sbin/start-dfs.sh
Starting namenodes on [localhost]
localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop- hduser-namenode-pradeep.out
localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hduser-datanode-pradeep.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-hduser-secondarynamenode-pradeep.out
hduser@pradeep:~$ jps
4385 Jps
3903 NameNode
4255 SecondaryNameNode
hduser@pradeep:~$ ls -l /usr/local/hadoop_store/hdfs/
total 8
drwx------ 3 hduser hadoop 4096 Mar 2 22:34 datanode
drwxr-xr-x 3 hduser hadoop 4096 Mar 2 22:34 namenode
由于datanode未运行,我无法从本地文件系统向hdfs部署数据。我无法理解或找到任何理由为什么文件权限仅恢复到datanode文件夹的先前状态。
答案 0 :(得分:1)
看起来NameNode生成的名称空间ID与您的DataNode不同。
解决方案: 如果您转到hadoop文件存储在本地文件系统上的路径。 例如/ usr / local / hadoop。沿着路径走到/ usr / local / hadoop / tmp / dfs / name / version。复制namespaceid并将其带到路径/ usr / local / hadoop / tmp / dfs / data / version,替换namespaceid。 我希望这会有所帮助。