我已经在ubuntu上安装了Hadoop(YARN)。资源管理器似乎正在运行。当我运行hadoop-fs-ls命令时,我收到以下错误:
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,但不知道如何解决这个问题。我曾尝试在我的core-site.xml文件(在/etc/hadoop中)中设置外部IP地址(与localhost相反),但这并没有解决问题。已在该框上禁用IPv6。我以hduser的身份运行该进程(它对目录具有读/写访问权限)。有没有想过解决这个问题?我在一个节点上运行这个。
bashrc
#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
您的问题与YARN无关。它受到HDFS使用的限制。这是一个类似情况的问题——询问者在外部IP接口上有9000端口侦听,但配置指向localhost。我建议先检查一下是否有人在9000端口和什么接口上监听。看起来你在IP接口上有服务监听,这与你寻找它的地方不同。查看你的日志,你的客户端正在尝试ubuntu-8。testMachine:9000。它被解决到什么IP?如果它在/etc/hosts中被分配到127.0.0.1,您可能会遇到我提到的问题——客户端试图访问127.0.0.1但服务正在等待外部IP。好吧,你也可以反过来。以下是Hadoop服务的良好默认端口映射表。
事实上,许多类似的情况都有相同的根错误配置的主机接口。人们经常配置他们的工作站主机名,并将该主机名分配给/etc/hosts中的localhost。此外,他们只在这个FQDN之后写第一个短名称。但这意味着IP被解析为短主机名,但FQDN被解析为IP(非对称)。
这反过来又引发了许多情况,即服务在本地127.0.0.1接口上启动,并且人们存在严重的连接问题(你感到惊讶吗?:-))。
正确的方法(至少我鼓励基于经验的方法):
- 至少分配一个对集群客户端可见的外部接口。如果你有DHCP,不想有静态IP,请将你的IP绑定到MAC,但移动到"恒定"IP值
- 将本地主机名写入/etc/hosts以匹配外部接口。首先是FQDN名称,然后是短名称
- 如果可以的话,让你的DNS解析程序将你的FQDN解析为你的IP。不要在意短名字
例如,您将外部IP接口1.2.3.4和FQDN(完全限定域名)设置为myhost.com-在这种情况下,您的/etc/hosts记录必须看起来像:
1.2.3.4 myhost.com myhost
是的,最好你的DNS解析程序知道你的名字。使用检查直接和反向分辨率
主机myhost.com主机1.2.3.4
是的,集群在网络管理方面并不那么容易;-)。从来没有也永远不会。
请确保您已经启动了所有必要的服务,键入start-all.sh,此命令将启动连接到hadoop所需的所有服务。
之后,您可以键入jps,使用此命令可以查看在hadoop下运行的所有服务,最后,使用netstat-plnet|grep-java检查这些服务打开的端口。
希望这能解决你的问题。