hadoopYarn作业跟踪器未启动

pbgvytdp  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(418)

前言:
我有一个网络应用程序的问题,它是由一个不再在公司工作的员工开发的。因为几乎没有关于实现的文档可用,所以我不确定在哪里可以获得更多关于这个问题的信息。
我试图找到一个类似于这个问题的解决方案(hadoop伪分布式模式-datanode和tasktracker没有启动)。然而,由于我对hadoop没有什么经验,我无法确定需要修复什么才能使应用程序正常工作。
场景:
应用程序分为两部分:
应用程序在一个tomcat服务器上运行,它处理用户输入并提供map reduce作业的结果( localhost:8080/WebApp ).
比hadoop的主节点 localhost:50070 2.1. 还有一个工作追踪器正在运行 localhost:8088/cluster 所有的应用程序都运行在同一台ubuntu机器上。
这是使用前雇员部署的配置正确运行的。我所有的文件都是关于如何启动不同的服务器的。对于hadoop集群,它是一个名为 up.sh .
到目前为止我所做的:
在下一步中,我想将应用程序迁移到具有静态ip地址的新网络。我配置了与it部门数据的连接,并更改了 server.xml tomcat服务器的文件,以便应用程序可以通过新的静态ip地址访问( 172.16.254.1:8080/WebApp ). 这是有效的
我采取的下一步是更改 /etc/hosts 旧ip地址被列为hadoop集群主地址的文件。
所以我改变了这个:

127.0.0.1   localhost
192.0.2.42  master

# The following lines are desirable for IPv6 capable hosts

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

对此:

127.0.0.1    localhost
172.16.254.1 master

# The following lines are desirable for IPv6 capable hosts

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

结果是:
修改完成后,我可以用 up.sh 编写脚本并访问 localhost:50070 . 但是,我无法访问hadoop作业跟踪器 localhost:8088/cluster .
在webapp中,我可以安排map reduce任务,但是结果不正确。缺少应该由map reduce集群计算的重要数据。
到目前为止,我发现的唯一错误是 hadoop-hduser-namenode.log 文件:

2015-07-28 13:57:23,713 ERROR org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Error getting localhost name. Using 'localhost'...
java.net.UnknownHostException: ubuntu-machine: ubuntu-machine
    at java.net.InetAddress.getLocalHost(InetAddress.java:1461)
    at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.getHostname(MetricsSystemImpl.java:514)
    at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configureSystem(MetricsSystemImpl.java:453)
    at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configure(MetricsSystemImpl.java:449)
    at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:180)
    at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.init(MetricsSystemImpl.java:156)
    at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.init(DefaultMetricsSystem.java:54)
    at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.initialize(DefaultMetricsSystem.java:50)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1253)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1320)

因为调用堆栈没有提到雇员开发的任何类,所以我假设问题出在hadoop/网络配置中。应用服务器的日志也没有列出任何错误。我不知道我遗漏了什么。
如果您需要有关配置文件内容的更多信息,请告诉我,我将为您提供这些信息。

ekqde3dh

ekqde3dh1#

问题出在主机名上。将ubuntu机器Map添加到/etc/hosts文件

127.0.0.1    localhost ubuntu-machine
172.16.254.1 master ubuntu-machine

# The following lines are desirable for IPv6 capable hosts

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

另一件事是检查hadoop的版本。hadoop最近发生了重大变化。因此,hadoop有两个主要版本:hadoop1.x和hadoop2.x。这种变化发生在加工层。在hadoop1.x中,我们有jobtracker和tasktracker,在hadoop2.x中,我们有resourcemanager、nodemanager和applicationmaster。两个版本的安装步骤不同。类型 hadoop version 并验证您正在使用的hadoop版本。
如果是1.x,那么job tracker的web用户界面将出现在url中 http://jobrackerhost:50030 .
如果是2.x,那么资源管理器web ui将位于url中 http://resourcemanagerhost:8088 对于启动现有服务,您不必太担心。首先修复主机名问题并尝试启动服务。如果集群中存储了一些重要数据,请不要格式化集群。如果要格式化集群,请同时清除datanode目录。下面给出了一次性启动每个hadoop服务的命令。
转到hadoop\u主页/bin

cd $HADOOP_HOME/bin
./start-all.sh

相关问题