Hadoop Yarn 作业跟踪器未启动
Hadoop Yarn Job Tracker not starting
前言:
我有一个 Web 应用程序的问题,该应用程序是由一名已离职的员工开发的。由于几乎没有关于可用实现的文档,我不确定从哪里获得更多关于该问题的信息,因此提出了这个问题。
我试图找到与此问题 (Hadoop pseudo distributed mode - Datanode and tasktracker not starting) 类似的问题的解决方案。然而,由于我对 hadoop 的经验很少,我无法确定我需要修复什么才能让应用程序正常工作。
场景:
申请分为两部分:
- 有一个 Tomcat 服务器运行应用程序
处理用户输入并提供 map reduce 的结果
工作(
localhost:8080/WebApp
)。
Hadoop 主节点位于 localhost:50070
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/network 配置中。应用服务器的日志也没有列出任何错误。我不确定我缺少哪一部分。
如果您需要有关配置文件内容的更多信息,请告诉我,我将为您提供信息。
问题出在主机名上。将 ubuntu-机器映射添加到 /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。变化发生在处理层。
在 hadoop 1.x 中,我们有 Jobtracker 和 Tasktracker
在 hadoop 2.x 中,我们有 Resource manager、Nodemanager 和 Application Master。
两个版本的安装步骤不同。
在命令行中键入 hadoop version
并验证您使用的 hadoop 版本。
如果是 1.x,则工作跟踪器网站 UI 将位于 url http://jobrackerhost:50030
.
如果是2.x,那么资源管理器webUI会在urlhttp://resourcemanagerhost:8088
对于启动现有服务,您不必太担心。首先修复主机名问题并尝试启动服务。如果集群中存储了一些重要数据,请不要格式化集群。如果您正在格式化集群,请同时清除数据节点目录。一次性启动所有hadoop服务的命令如下。
转到HADOOP_HOME/bin
cd $HADOOP_HOME/bin
./start-all.sh
前言:
我有一个 Web 应用程序的问题,该应用程序是由一名已离职的员工开发的。由于几乎没有关于可用实现的文档,我不确定从哪里获得更多关于该问题的信息,因此提出了这个问题。
我试图找到与此问题 (Hadoop pseudo distributed mode - Datanode and tasktracker not starting) 类似的问题的解决方案。然而,由于我对 hadoop 的经验很少,我无法确定我需要修复什么才能让应用程序正常工作。
场景:
申请分为两部分:
- 有一个 Tomcat 服务器运行应用程序
处理用户输入并提供 map reduce 的结果
工作(
localhost:8080/WebApp
)。 Hadoop 主节点位于
localhost:50070
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
.
在 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/network 配置中。应用服务器的日志也没有列出任何错误。我不确定我缺少哪一部分。
如果您需要有关配置文件内容的更多信息,请告诉我,我将为您提供信息。
问题出在主机名上。将 ubuntu-机器映射添加到 /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。变化发生在处理层。
在 hadoop 1.x 中,我们有 Jobtracker 和 Tasktracker
在 hadoop 2.x 中,我们有 Resource manager、Nodemanager 和 Application Master。
两个版本的安装步骤不同。
在命令行中键入 hadoop version
并验证您使用的 hadoop 版本。
如果是 1.x,则工作跟踪器网站 UI 将位于 url http://jobrackerhost:50030
.
如果是2.x,那么资源管理器webUI会在urlhttp://resourcemanagerhost:8088
对于启动现有服务,您不必太担心。首先修复主机名问题并尝试启动服务。如果集群中存储了一些重要数据,请不要格式化集群。如果您正在格式化集群,请同时清除数据节点目录。一次性启动所有hadoop服务的命令如下。
转到HADOOP_HOME/bin
cd $HADOOP_HOME/bin
./start-all.sh