【问题标题】:Single Node Hadoop on Debian: failed on connection exceptionDebian 上的单节点 Hadoop:连接异常失败
【发布时间】:2016-06-27 03:15:03
【问题描述】:

我在 debian 上安装了 hadoop,运行良好。 (不在VM中)然后我重新启动计算机,它开始出现问题。我得到错误 -

hadoop fs -ls /user/hduser

返回这样的错误 -

16/06/15 10:48:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ls: Call From localhost/127.0.0.1 to mylocalcomp:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

另一方面,jps 显示事情正在运行:

6022 SecondaryNameNode
5840 DataNode
7290 Jps
6413 NodeManager
6309 ResourceManager

我的 core-site.xml 配置

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://mylocalcomp:9000</value>
</property>
</configuration>

我的 /etc/hosts 有这个 -

127.0.0.1       localhost mylocalcomp

如果有帮助的话,我的 Hadoop 版本是 2.7.2。在几个类似的问题中尝试了建议,但不起作用,我现在有点困惑。

在我的 .profile 文件中 -

HADOOP_PREFIX=/usr/local/hadoop
JAVA_HOME=/usr/local/java
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/sbin:$HADOOP_PREFIX/bin
export HADOOP_PREFIX
export JAVA_HOME
export PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"

编辑: 我用 start-dfs.sh 和 start-yarn.sh 启动 hadoop。并使用 /usr/local/hadoop/sbin/hadoop-daemon.sh 启动名称节点启动名称节点。 名称节点在 jps 中只出现几分钟,然后消失。

编辑 2: 我猜问题出在 hdfs-site.xml 中的 namenode 配置(或缺少它)...

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

与这个有点相关 (?) - Namenode not getting started

我不确定在我的案例中使用什么名称节点配置或在哪里...

编辑 3: 日志文件: /usr/local/hadoop/logs/hadoop-hduser-namenode-mylocalcomp.log

Namenode log:
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = mylocalcomp/127.0.1.1
STARTUP_MSG:   args = []
STARTUP_MSG:   version = 2.7.2

【问题讨论】:

  • 在 /var/log 中查看更多详细信息
  • 问题是namenode,因为它在格式化时可以工作 - 有点链接帖子 - stackoverflow.com/questions/16713011/… 但重启时可能会出现问题
  • 单节点集群的 hdfs-site.xml 中 namenode 的配置是什么?我认为这可以解决问题..

标签: java hadoop


【解决方案1】:

9000 是 NameNode 的一个默认 RPC 端口。你还没有启动你的namenode。试试

sbin/hadoop-daemon.sh start namenode

我怀疑在您的计算机重新启动时曾经尝试启动名称节点,但它失败了。因此,如果上面的命令不起作用,请查看 namenode 的日志。

【讨论】:

  • 谢谢!按照建议启动namenode。有趣的是,namenode 只在 jps 中出现了几分钟,然后就消失了……我又遇到了同样的错误……:(
  • 发布namenode日志。通常日志存在于 /var/log/hadoop
  • 这实际上是名称节点问题。我格式化了namenode,它又开始工作了......我猜当重新启动时会发生一些影响namenode的事情......我想,如果我重新启动我可能会遇到同样的错误..
  • @user1478061 你能发布日志吗?
  • ip没问题。您发布的日志 sn-p 没用。我的纯粹猜测是您的数据目录设置为 /tmp 下,并且您的计算机每次重新启动时都会清理 /tmp 目录。所以请尝试将 dfs.datanode.data.dirdfs.namenode.name.dir 配置到 /tmp 以外的其他地方
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
相关资源
最近更新 更多