首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用hadoop2时连接异常(纱线)

使用hadoop2时连接异常(纱线)
EN

Stack Overflow用户
提问于 2014-09-22 19:56:12
回答 2查看 562关注 0票数 2

我已经在ubuntu上安装了Hadoop (纱线)。资源管理器似乎正在运行。当我运行hadoop fs -ls命令时,会收到以下错误:

代码语言:javascript
复制
14/09/22 15:52:14 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ls: Call From ubuntu-8.abcd/xxx.xxx.xxx.xxxx to ubuntu-8.testMachine:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

我在错误消息中检查了建议的URL,但无法解决问题。我已经尝试过在我的核心-site.xml文件( etc/hadoop)中设置外部IP地址(而不是localhost),但这并没有解决这个问题。IPv6已在该框中被禁用。我以hduser的身份运行该进程(它具有对目录的读/写访问权限)。有什么想法来解决这个问题吗?我在一个节点上运行这个。

bashrc

代码语言:javascript
复制
#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export HADOOP_INSTALL=/usr/local/hadoop/hadoop-2.5.1
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export HADOOP_YARN_HOME=$HADOOP_INSTALL  ##added because I was not sure about the line below
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_CONF_DIR=$HADOOP_INSTALL/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END 
EN

回答 2

Stack Overflow用户

发布于 2014-09-23 19:08:52

你的问题与纱线无关。它受到HDFS使用的限制。具有类似情况的以下是问题所在 -询问的人有9000端口监听外部IP接口,但配置指向本地主机。我建议您先检查一下是否有人在端口9000和接口上监听。看起来,您有服务监听IP接口,这与您查找它的位置不同。查看您的日志,您的客户正在尝试ubuntu-8.testMachine:9000。它正在被解决到什么IP?如果在/etc/host中将其分配给127.0.0.1,您可能会遇到我提到的问题--客户机尝试访问127.0.0.1,但服务正在等待外部IP。好吧,反之亦然。下面是用于Hadoop服务的良好的默认端口映射表

实际上,许多类似的情况都有相同的根错误配置的主机接口。人们通常配置他们的工作站主机名,并将这个主机名分配给/etc/host中的本地主机。此外,他们写的名字很短,而且只写在这个FQDN之后。但这意味着IP被解析为短主机名,而FQDN被解析为IP (非对称)。

这反过来又引发了许多情况,即服务在本地127.0.0.1接口上启动,人们存在严重的连接问题(您感到惊讶吗?:-)。

正确的方法(至少我鼓励它基于赎罪):

  1. 分配至少一个对群集客户端可见的外部接口。如果您有DHCP并且不想拥有静态IP,请将您的IP绑定到MAC,但移动到“恒定”IP值。
  2. 将本地主机名写入/etc/host以匹配外部接口。FQDN名称先名后短。
  3. 如果可以,请让DNS解析器将FQDN解析为IP。别在意短名字。

例如,外部IP接口1.2.3.4和FQDN (完全限定域名)设置为myhost.com -在本例中,您的/etc/host记录必须如下所示:

1.2.3.4 myhost.com myhost

是的,更好的是你的DNS解析器知道你的名字。用以下方法检查直接和反向分辨率:

主机myhost.com主机1.2.3.4

是的,集群在网络管理方面并不是那么容易;-)。从来没有也永远不会。

票数 2
EN

Stack Overflow用户

发布于 2014-09-22 22:43:35

请确保您已经启动了所有必需的启动-all.sh,此命令将启动连接到hadoop所需的所有服务。

在此之后,您可以键入jps,通过这个命令,您可以看到在hadoop下运行的所有服务,最后,检查使用netstat -plnet _ grep java打开的这些服务的端口。

希望这能解决你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25982178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档