Hadoop Yarn Job Tracker无法启动

时间:2015-07-28 13:06:03

标签: ubuntu hadoop hdfs yarn

前言

我遇到的问题是由不再与公司合作的员工开发的网络应用程序。由于没有关于可用实现的文档,我不知道在哪里可以获得有关问题的更多输入因此问题。

我尝试找到与此问题类似的问题的解决方案(Hadoop pseudo distributed mode - Datanode and tasktracker not starting)。但是因为我对hadoop没有什么经验,所以无法确定我需要修复什么来使应用程序正常工作。

情景:

该应用程序分为两部分:

  1. 有一个运行应用程序的Tomcat服务器 处理用户输入并提供map reduce的结果 工作(localhost:8080/WebApp)。
  2. localhost:50070

    处有一个主要的Hadoop节点

    2.1。还有一个工作跟踪器在localhost:8088/cluster

  3. 运行

    所有应用程序都在同一台Ubuntu计算机上运行。

    这正在使用前员工部署的配置正确运行。我所有的文档都是如何启动不同的服务器。对于Hadoop集群,它是一个名为up.sh的脚本。

    到目前为止我做了什么:

    在下一步中,我想将应用程序迁移到具有静态IP地址的新网络。我使用来自IT部门的数据配置了连接,并更改了Tomcat服务器的server.xml文件,以便通过新的静态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脚本启动主Hadoop节点,并在localhost:50070访问它。但是,我无法访问localhost:8088/cluster处的Hadoop作业跟踪器。

    在WebApp中,我可以安排map reduce任务,但结果不正确。缺少重要数据,应由map reduce cluster计算。

    到目前为止我发现的错误的唯一指示是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 /网络配置中。此外,应用程序服务器的日志不会列出任何错误。我不确定我错过了什么部分。

    如果您需要有关配置文件内容的更多信息,请通知我,我将为您提供相关信息。

1 个答案:

答案 0 :(得分:1)

问题在于主机名。将ubuntu-machine映射添加到/ etc / hosts文件

<xsl:template match="dxl:tablerow[not(dxl:tablecell)]" />

然后另一件事是检查hadoop的版本。 Hadoop最近发生了重大变化。因此有两个主要版本的hadoop可用hadoop 1.x和hadoop 2.x.更改发生在处理层。 在hadoop 1.x中,我们有Jobtracker和Tasktracker 在hadoop 2.x中,我们有资源管理器,Nodemanager和Application Master。 两个版本的安装步骤都不同。 在命令行中键入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版本。

如果是1.x,则作业跟踪器Web UI将位于网址hadoop version中。

如果是2.x,则资源管理器Web UI将位于网址http://jobrackerhost:50030

要启动现有服务,您不必担心太多。首先修复主机名问题并尝试启动服务。如果群集中存储了一些重要数据,请不要格式化群集。如果要格式化群集,请同时清除datanode目录。下面给出了一次启动每个hadoop服务的命令。

转到HADOOP_HOME / bin

http://resourcemanagerhost:8088