我在hadoop集群中面临一个问题。我有一个hadoop集群,有5个datanode和一个edge/gateway节点。我的问题是,我必须在每个节点(1个namenode和5个datanodes)中启动history服务器,才能从hadoopwebui获取任何提交作业的作业历史。我补充说 mapreduce.jobhistory.address
以及 mapreduce.jobhistory.webapp.address
在mapred-site.xml中,但我猜它工作不正常。如果我只在name节点或任何其他节点中启动history服务器,hadoop集群webui将无法显示作业历史,并最终导致一些错误。
我的Map站点xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoopmaster:8021</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoopmaster:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoopmaster:19888</value>
</property>
</configuration>
暂时作为一种解决方法,我在每个节点(namenode和all data节点)手动启动history服务器。但我认为这是不对的。
现在我只有5个数据节点,所以在每个节点上手动启动历史服务器仍然是可行的,但是如果有多个节点(比如100/200),在每个节点上启动历史服务器就不再可行了。对于这个问题应该有一些标准的解决方案。。。
如果有人知道如何解决这个问题,请帮助我。提前谢谢…。
1条答案
按热度按时间tzcvj98z1#
我终于可以解决这个问题了。实际上是为了防止
mapreduce.jobhistory.address
,它将显示历史服务器仅在一个节点上运行(jps)。现在工作正常了。。。