Hadoop 客户端.RMProxy:连接到 ResourceManager
我在linux上设置单节点集群:http://tecadmin.net/setup-hadoop-2-4-single-node-cluster-on-linux/
当我运行如下所示的 MapReduce 应用程序时:
hadoop jar hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+
I got the ff INFO:
15/02/25 23:42:54 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
15/02/25 23:42:56 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
15/02/25 23:42:59 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
15/02/25 23:43:02 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
jps:
5232 SecondaryNameNode
6482 RunJar
5878 NodeManager
6521 Jps
4905 NameNode
5759 ResourceManager
5023 DataNode
搭建单节点集群时如何连接ResourceManager?
我尝试添加到
yarn-site.xml
,但没有成功。
<property>
<name>yarn.resourcemanager.address</name>
<value>127.0.0.1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>127.0.0.1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>127.0.0.1:8031</value>
</property>
谢谢
只需记住有关运行 Hadoop 的一个方面即可。给出了三种模式:单机、伪分布式、全分布式。
单机和伪分布式运行在同一个节点。实际上,它们仅在您的计算机上运行。这不需要您显示的配置:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html
先验,这就是yarn-site.xml 中单个节点所需的全部内容:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
但也可以使用进一步的配置。我的伪分布式模式的纱线站点如下:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>localhost:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>localhost:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:8050</value>
</property>
提示:请确保您在配置文件中输入的 IP。我建议您将此 IP 添加到您的 etc/hosts 并提供主机名。因此,在配置文件中使用主机名。
此问题可能是由于缺少 HADOOP_CONF_DIR,MapReduce 应用程序需要它来连接到yarn-site.xml中提到的资源管理器。因此,在运行 MapReduce 作业之前,请尝试使用适当的 Hadoop Conf 目录手动设置/导出 HADOOP_CONF_DIR,例如 export HADOOP_CONF_DIR=/etc/hadoop/conf。 这种方法对我有用:)
我在 Kubernetes 上运行 Hadoop 实例时遇到了同样的问题。问题在于错误消息本身“尝试连接到 ResourceManager 时出现连接错误”。
Ps: ResourceManager 监听端口 8032(除非更改)
确保您在与 ResourceManager 相同的网络中运行 MapReduce 作业,因为它将侦听此地址:
http://<RESOURCE_MANAGER_IP>:8032