hadoop的datanode未启动

w1jd8yoj  于 2021-05-30  发布在  Hadoop
关注(0)|答案(4)|浏览(494)

我正在使用Ubuntu14.04 LTSJavaVersion8和Hadoop2.5.1进行安装。我按照这个指南安装了所有的组件。抱歉没用迈克尔·诺尔的。现在我面临的问题是,当我启动dfs.sh时,我得到以下消息

oroborus@Saras-Dell-System-XPS-L502X:~$ start-dfs.sh <br>
14/11/12 16:12:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable<br>
Starting namenodes on [localhost]<br>
localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-oroborus-namenode-Saras-Dell-System-XPS-L502X.out<br>
localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-oroborus-datanode-Saras-Dell-System-XPS-L502X.out<br>
Starting secondary namenodes [0.0.0.0]<br>
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-oroborus-secondarynamenode-Saras-Dell-System-XPS-L502X.out<br>
14/11/12 16:12:48 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable<br>

现在,在运行start yarn.sh(它似乎工作正常)和jps之后,我得到以下输出

oroborus@Saras-Dell-System-XPS-L502X:~$ jps
9090 NodeManager
5107 JobHistoryServer
8952 ResourceManager
12442 Jps
11981 NameNode

理想的输出应该包含datanode,但它不存在。我在google和soil上搜索了一下,发现错误已经大量存在于日志中了,所以这里是datanode的日志(如果需要更多的信息,请告诉我错误部分)

2014-11-08 23:30:32,709 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: registered UNIX signal handlers for [TERM, HUP, INT]
2014-11-08 23:30:33,132 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid dfs.datanode.data.dir /usr/local/hadoop_store/hdfs/datanode :
EPERM: Operation not permitted
        at org.apache.hadoop.io.nativeio.NativeIO$POSIX.chmodImpl(Native Method)
        at org.apache.hadoop.io.nativeio.NativeIO$POSIX.chmod(NativeIO.java:226)
        at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:642)
        at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:472)
        at org.apache.hadoop.util.DiskChecker.mkdirsWithExistsAndPermissionCheck(DiskChecker.java:126)
        at org.apache.hadoop.util.DiskChecker.checkDir(DiskChecker.java:142)
        at org.apache.hadoop.hdfs.server.datanode.DataNode$DataNodeDiskChecker.checkDir(DataNode.java:1866)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.checkStorageLocations(DataNode.java:1908)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1890)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1782)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1829)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2005)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2029)
2014-11-08 23:30:33,134 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain
java.io.IOException: All directories in dfs.datanode.data.dir are invalid: "/usr/local/hadoop_store/hdfs/datanode/"
        at org.apache.hadoop.hdfs.server.datanode.DataNode.checkStorageLocations(DataNode.java:1917)

现在我的疑问是如何使它有效

谢谢你的帮助。
p、 我尝试了很多论坛,所以没有一个能给我解决这个问题的方法。这就是问题所在。

a2mppw5e

a2mppw5e1#

在使用cloudera时,我也遇到了同样的问题。


* chown hdfs:hadoop all_hdfs_directories

  chown 997:996 all_hdfs_directories (if users don't exist yet)

* chmod 0755 is enough
* delete contents of directories if problem persists
v6ylcynt

v6ylcynt2#

我也遇到了同样的问题,我通过更改这些工作目录的所有者来修复它们。虽然您对这两个目录拥有777权限,但是除非您将所有者更改为hduser,否则framework将无法使用它。
$苏多周hduser:hadoop /usr/local/hadoop/yarn_data/hdfs/namenode
$苏多周hduser:hadoop /usr/local/hadoop/yarn_data/hdfs/datanode
之后,再次启动集群,您应该看到datanode正在运行。

qlvxas9a

qlvxas9a3#

首先停止所有实体,如namenode、datanode等(您将有一些脚本或命令来完成这项工作)
格式化tmp目录
转到/var/cache/hadoop hdfs/hdfs/dfs/手动删除目录中的所有内容
现在再次格式化namenode
启动所有实体,然后使用jps命令确认datanode已经启动
现在运行任何您喜欢或拥有的应用程序。
希望这有帮助。

dgiusagp

dgiusagp4#

首先从hdfs文件夹中删除所有内容:
的价值 <name>hadoop.tmp.dir</name> ```
rm -rf /usr/local/hadoop_store

确保dir拥有正确的所有者和权限/usr/local/hadoop\u store

hduser@localhost$sudo chown hduser:hadoop -R /usr/local/hadoop_store
hduser@localhost$sudo chmod 777 -R /usr/local/hadoop_store

格式化名称节点:

hduser@localhost$hadoop namenode -format

重新启动所有进程

相关问题