11

我正在尝试在 ubuntu 16.04 上安装 hadoop,但是在启动 hadoop 时它会给我以下错误

localhost: ERROR: Cannot set priority of datanode process 32156.
Starting secondary namenodes [it-OptiPlex-3020]
2017-09-18 21:13:48,343 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting resourcemanager
Starting nodemanagers

请有人告诉我为什么会收到此错误?提前致谢。

4

9 回答 9

7

我不得不处理同样的问题并不断收到以下异常:

Starting namenodes on [localhost]
Starting datanodes
localhost: ERROR: Cannot set priority of datanode process 8944
Starting secondary namenodes [MBPRO-0100.local]
2019-07-22 09:56:53,020 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

正如其他人所提到的,您首先需要确保所有路径参数都设置正确,这是我首先检查的。然后按照以下步骤解决问题:

1-停止dfs服务并格式化hdfs:

sbin/stop-dfs.sh
sudo bin/hdfs namenode -format

2-更改 hadoop 临时目录的权限:

sudo chmod -R 777 /usr/local/Cellar/hadoop/hdfs/tmp

3-再次启动服务:

sbin/start-dfs.sh

祝你好运

于 2019-07-22T15:10:29.250 回答
3

我在安装 Hadoop 3.0.0-RC0 时遇到了同样的错误。我的情况是除了Datanode之外的所有服务都成功启动。

我发现 hadoop-env.sh 中的一些配置在 3.0.0-RC0 版本中不正确,但在 2.x 版本中是正确的。

我最终用官方的替换了我的 hadoop-env.sh 并设置了 JAVA_HOME 和 HADOOP_HOME。现在,Datanodes 工作正常。

于 2017-11-22T08:00:11.610 回答
3

我建议你看看你的 hadoopdatanode日志。这可能是一个配置问题。

在我的情况下,配置的文件夹dfs.datanode.data.dir不存在,并且抛出异常并写入日志。

于 2019-02-27T09:22:54.863 回答
2

面临同样的问题,刷新文件夹:datanode& namenode。我已将文件夹放入/hadoop_store/hdfs/namenode&/hadoop_store/hdfs/datanode

发布删除文件夹,重新创建然后运行命令hdfs namenode -format

启动hadoop:

修复后日志看起来不错:

Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [ip]
2019-02-11 09:41:30,426 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

日语:

21857 NodeManager
21697 ResourceManager
21026 NameNode
22326 Jps
21207 DataNode
21435 SecondaryNameNode
于 2019-02-11T10:02:04.380 回答
1

我的情况的解决方法是添加export HADOOP_SHELL_EXECNAME=root到最后一行$HADOOP_HOME/etc/hadoop/hadoop-env.sh,否则环境变量的默认值为hdfs

于 2021-08-24T12:11:35.700 回答
1

问题在这里解决!(两个排名靠前的答案都对我不起作用)

发生此问题是因为您使用不是所有 hadoop 文件文件夹所有者的用户运行 hadoop(namenode-user,datanode-user,...)。

做一个sudo chown YOURUSER:YOURUSER -R /home/YOURUSER/hadoop/*

于 2021-09-29T14:50:58.717 回答
0
  1. 这可能由于各种原因而发生,最好检查日志@ $HADOOP_HOME/logs

  2. 在我的情况下,/etc/hosts文件配置错误,即我的主机名没有解析为 localhost

底线:检查您的名称节点/数据节点日志文件:)

于 2021-10-22T13:20:04.087 回答
0

我也遇到过同样的问题。

我的问题如下:datanode文件夹权限未授予,我已将权限更改为sudo chmod 777 ./datanode/

我的建议是检查所有相关的路径/文件夹并首先将它们设为 777(之后可以改回来)。

可能还有其他一些原因导致启动datanode失败。常见的原因是

  1. hdfs-site.xml 中的错误配置
  2. hdfs-site.xml 文件中指定的文件夹未创建或没有写入权限。
  3. 日志文件夹没有写入权限。日志文件夹通常在 $HADOOP_HOME 下,将文件夹权限更改为例如sudo chmod ...
  4. ssh 链接配置未正确设置或以某种方式丢失,请尝试ssh datanode1检查

如果一切都检查过了,还是不行,我们可以登录datanode服务器,进入$HADOOP_HOME/logs文件夹,查看日志信息进行调试。

于 2021-04-27T14:38:05.253 回答
0

对我来说,其他解决方案不起作用。它与目录权限无关。

hadoop-env.sh 中有一个条目 JSVC_HOME 需要取消注释。

从这里下载并制作 jsvc:http: //commons.apache.org/proper/commons-daemon/jsvc.html

或者,jvsc jar 也存在于 hadoop 目录中。

于 2021-10-12T10:02:35.667 回答