hadoop - 无法在 master 上启动节点管理器

标签 hadoop centos hadoop-yarn

我正在设置一个 Hadoop YARN 集群,我正在使用一台机器作为主机和从机。当我使用以下命令启动 YARN 时,它会在从节点上启动节点管理器,但不会在主节点上启动。

sbin/yarn-daemons.sh start nodemanager

我有一个主控也是从属,然后我在集群中有另外两个从属,从属中的节点管理器正常启动。

我得到的错误:

org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.net.BindException: Problem binding to [0.0.0.0:8040] java.net.BindException: Address already in use; For more details see:  http://wiki.apache.org/hadoop/BindException

一些命令的输出。

cat /etc/services | grep 8040
ampify          8040/tcp                # Ampify Messaging Protocol
ampify          8040/udp                # Ampify Messaging Protocol

lsof -i tcp:8040
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    28021   df  195u  IPv6 3580602      0t0  TCP server1.mydomain.com:ampify (LISTEN

最佳答案

在 Hadoop 提供的默认配置下,端口 8040 是 NodeManager 用于定位器的端口。这基本上是一个服务器端点,负责将运行容器所需的文件带到本地节点上。 (例如,这可以是 MapReduce 作业的 jar 文件或分布式缓存文件。)

假设机器上有另一个服务器(这里显示为 Ampify)合法地绑定(bind)到端口 8040,并且您不想停止该服务,那么可以重新配置 NodeManager 用于定位器的端口.在 yarn-site.xml 文件中设置属性 yarn.nodemanager.localizer.address。这记录在这里:

http://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

从 Hadoop 树中的 XML 源中提取它,这里是该属性的文档:

<property>
  <description>Address where the localizer IPC is.</description>
  <name>yarn.nodemanager.localizer.address</name>
  <value>${yarn.nodemanager.hostname}:8040</value>
</property>

关于hadoop - 无法在 master 上启动节点管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25153240/

相关文章:

hadoop - 如何使用 Spark 从目录中递归读取 Hadoop 文件?

sql - Hive 中 SQL Server UPDATE 命令的最佳等价物

scala - sbt:如何将本地文件系统 jar 添加到我的项目中……还有很多 .so 库?

hadoop - yarn模式提交spark应用时出现异常

docker - Hadoop在不使用IP的情况下无法访问数据节点

hadoop - newAPIHadoopRDD 从 HBase 读取耗时过多(主要原因是 Dns.reverse Dns)

Linux centos : ping displays unknown host for any domain name

linux - 在 unix date 命令中使用变量

resources - 如何在 hadoop yarn 中获取容器 cpu/内存使用情况

apache-spark - yarn 上的 Spark 流 - 容器运行超出物理内存限制