Hadoop yarn nodemanager重启之后,就在resourcemanager上多一个重复节点

Feng_Yu 发布于 2016/04/25 12:17
阅读 1K+
收藏 0

如题。比方说我目前在hadoop yarn resourcemanager节点上的web界面看到的可用节点是这样的:

一共3个nodemanager。当我把rtdstest2这个节点的nodemanager服务重启之后,刷新一下发现多了一个重复的rtdstest2:

如果MR任务分配到了之前已经停掉的实例上,也会hang住走不下去。想问问看这是怎么回事?应该如何避免?

最后贴出我的几个配置,请帮我看看是不是哪里配置的不对(所有节点配置相同)?

core-site.xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://rtdstest</value>
 </property>
 <property>
  <name>hadoop.proxyuser.mapred.groups</name>
  <value>*</value>
 </property>
 <property>
  <name>hadoop.proxyuser.mapred.hosts</name>
  <value>*</value>
 </property>
</configuration>



mapred-site.xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
 <property>
  <name>mapreduce.jobhistory.address</name>
  <value>172.16.250.10:10020</value>
 </property>
 <property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>172.16.250.10:19888</value>
 </property>
 <property>
  <name>yarn.app.mapreduce.am.staging-dir</name>
  <value>/user</value>
 </property>
</configuration>



yarn-site.xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
 <property>
  <name>yarn.resourcemanager.hostname</name>
  <value>rtdstest</value>
 </property>
 <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.log-aggregation-enable</name>
  <value>true</value>
 </property>
 <property>
  <description>List of directories to store localized files in.</description>
  <name>yarn.nodemanager.local-dirs</name>
  <value>file:///var/lib/hadoop-yarn/cache/${user.name}/nm-local-dir</value>
 </property>
 <property>
  <description>Where to store container logs.</description>
  <name>yarn.nodemanager.log-dirs</name>
  <value>file:///var/log/hadoop-yarn/containers</value>
 </property>
 <property>
  <description>Where to aggregate logs to.</description>
  <name>yarn.nodemanager.remote-app-log-dir</name>
  <value>/var/log/hadoop-yarn/apps</value>
 </property>
 <property>
  <description>Classpath for typical applications.</description>
  <name>yarn.application.classpath</name>
  <value>
   $HADOOP_CONF_DIR,
   $HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,
   $HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,
   $HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,
   $HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/*
  </value>
 </property>
</configuration>



加载中
0
huan
huan
正常的,过几分钟就会消失了。mr应该不会分配到这个失效节点上,因为拿不到资源。
huan
huan
回复 @Feng_Yu : 所以,理论上即便是nodenanager失效了,但是因为resourcenanager无法获取container,稍后会重新请求,所以不会hang住。但有可能其他的nodemanager都满了,无法获取新container,可能会一直重复请求。
huan
huan
回复 @Feng_Yu : 我们集群未发现类似情况,但有可能是我们节点较多。但是从yarn的原理上来说不应该发生这种问题,MR任务不是是直接跑在nodemanager上的,而是通过resourcemanager向nodemanager请求一个container ,在container中运行。
Feng_Yu
Feng_Yu
我实测的时候发现好像会分配到这个节点,然后hang住一会报错。因为在resourcemanager看来这个节点状态依旧是active。不过几分钟后消失这个倒是对的。问题就在于这几分钟之内好像MR任务还可能分配到这个本已经停掉的实例上。我的版本是CDH 5.7,hadoop版本2.6.0
0
沧海_Sea
沧海_Sea
重启的时候你用的什么命令 ?  如果是kill掉的话  可能是zookeeper连接的问题  因为zookeeper在timeout的时间内是感知不到客户端下线的
沧海_Sea
沧海_Sea
回复 @Feng_Yu : 嗯 没有高可用的时候确实不需要zookeeper的 但是一般用的都是要有高可用的
Feng_Yu
Feng_Yu
回复 @沧海_Sea : 我读了一下CDH高可用的文档确认了一下。无论HDFS还是yarn的HA配置,都是用到了zookeeper。利用zookeeper的服务发现机制实现的HA。所以不用HA的时候是不需要zookeeper的
沧海_Sea
沧海_Sea
那我就不知道了,我就用过原版的那个
Feng_Yu
Feng_Yu
回复 @沧海_Sea : 我用的是CDH发行版。提供了service脚本,封装了hadoop自己的命令,这样无需SSH各节点无密码登录配置了。而且CDH的yarn配置文档并未提及任何zookeeper的信息。应该只是高可用的时候才需要。三节点集群可能用不到zookeeper
沧海_Sea
沧海_Sea
回复 @Feng_Yu : hadoop集群怎么会没有zookeeper? nodemanager会把自己的状态写道zookeeper上面 这样resourceManager才能知道nodemanager的状态 另外重启hadoop节点的时候最好使用hadoop的命令去重启
下一页
返回顶部
顶部