【问题标题】:Hadoop Yarn Job Tracker not startingHadoop Yarn Job Tracker 未启动
【发布时间】:2015-07-28 22:30:22
【问题描述】:

前言:

我对由不再在公司工作的员工开发的 web 应用程序有疑问。由于几乎没有关于可用实施的文档,我不确定从哪里获得更多关于该问题的输入,因此问题。

我尝试找到与此问题 (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运行

所有应用程序都在同一台 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 集群计算。

到目前为止,我发现的唯一错误指示是 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/网络配置中。应用服务器的日志也没有列出任何错误。我不确定我缺少哪一部分。

如果您需要有关配置文件内容的更多信息,请告诉我,我会为您提供信息。

【问题讨论】:

    标签: ubuntu hadoop hdfs hadoop-yarn


    【解决方案1】:

    问题出在主机名上。将 ubuntu-machine 映射添加到 /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版本可用hadoop 1.x和hadoop 2.x。处理层发生了变化。 在 hadoop 1.x 中,我们有 Jobtracker 和 Tasktracker 在 hadoop 2.x 中,我们有资源管理器、Nodemanager 和 Application Master。 两个版本的安装步骤不同。 在命令行中输入 hadoop version 并验证您正在使用的 hadoop 版本。

    如果是 1.x,那么 Job Tracker Web UI 将在 url http://jobrackerhost:50030 中。

    如果是2.x,那么资源管理器web UI会在urlhttp://resourcemanagerhost:8088

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

    转到 HADOOP_HOME/bin

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多