Hadoop:无法访问 "Tracking URL"

Hadoop : Can't access "Tracking URL"

我将 Hadoop 环境构建为伪分布式模式(OSX)。下面的片段是配置文件。

○核心-site.xml

<configuration>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://127.0.0.1:9000</value>
  </property>
</configuration>

○mapred-site.xml

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>127.0.0.1:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>127.0.0.1:19888</value>
</property>
<property>
    <name>mapreduce.jobhistory.admin.address</name>
    <value>127.0.0.1:10033</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.https.address</name>
    <value>127.0.0.1:19890</value>
</property>
</configuration>

○纱-site.xml

<configuration>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.webapp.https.address</name>
    <value>127.0.0.1:8044</value>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>127.0.0.1:8032</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>127.0.0.1:8030</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>127.0.0.1:8031</value>
</property>
<property>
    <name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
    <value>98.5</value>
</property>
<property>
    <name>yarn.nodemanager.hostname</name>
    <value>localhost</value>
</property>
</configuration>

下面是 jps 结果。

79464 NameNode
79562 DataNode
79696 SecondaryNameNode
79831 ResourceManager
79945 NodeManager

我可以打开“http://localhost:8088", so I looked job details. And I clicked The History button(link to "http://[private_ip_addr]:8088/proxy/application_xxxx/”尝试打开"Tracking URL"(下图是工作详情页面),连接被拒绝(错误代码在google chrome 是 "ERR_CONNECTION_REFUSED")。

我可以打开节点管理器(http://127.0.0.1:8042) like below screenshot but I couldn't open "RM Home"(URL is "http://[private_ip_addr]:8088")。

是配置文件有误,还是我的网络环境不对?如果需要我的网络信息(端口等),写就写

谢谢。

--加法--

(180506 23:00)

我检查了节点管理器日志文件。我发现发生了错误 "Could not determine OS"。以下是日志文件的一部分。

2018-05-06 23:00:03,353 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncherEventType for class org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncher
2018-05-06 23:00:03,533 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.nodemanager.ContainerManagerEventType for class org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl
2018-05-06 23:00:03,534 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.nodemanager.NodeManagerEventType for class org.apache.hadoop.yarn.server.nodemanager.NodeManager
2018-05-06 23:00:03,642 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
2018-05-06 23:00:03,822 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled Metric snapshot period at 10 second(s).
2018-05-06 23:00:03,822 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NodeManager metrics system started
2018-05-06 23:00:03,932 WARN org.apache.hadoop.yarn.util.ResourceCalculatorPlugin: java.lang.UnsupportedOperationException: Could not determine OS: Failed to instantiate default resource calculator.
java.lang.UnsupportedOperationException: Could not determine OS
    at org.apache.hadoop.util.SysInfo.newInstance(SysInfo.java:43)
    at org.apache.hadoop.yarn.util.ResourceCalculatorPlugin.<init>(ResourceCalculatorPlugin.java:41)
    at org.apache.hadoop.yarn.util.ResourceCalculatorPlugin.getResourceCalculatorPlugin(ResourceCalculatorPlugin.java:191)
    at org.apache.hadoop.yarn.server.nodemanager.NodeResourceMonitorImpl.serviceInit(NodeResourceMonitorImpl.java:73)
    at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
    at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:107)
    at org.apache.hadoop.yarn.server.nodemanager.NodeManager.serviceInit(NodeManager.java:357)
    at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
    at org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartNodeManager(NodeManager.java:636)
    at org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:684)

(180507 14:55)

我升级到 Hadoop 3.0.0 然后错误 "Could not determine OS" 被删除,但是任务跟踪页面仍然没有工作。

我再次检查了 Nodemanager 日志,然后我找到了消息。

2018-05-07 14:53:14,803 INFO org.apache.hadoop.yarn.server.nodemanager.NodeManager: 
Node Manager health check script is not available or doesn't have execute permission, so not starting the node health script runner.

这是一个原因吗?

(180507 16:22)

我忘了运行 JobHistoryServer,所以我执行$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver

41446 JobHistoryServer
41672 NameNode
41779 DataNode
41924 SecondaryNameNode
42128 ResourceManager
42234 NodeManager
42772 Jps

看起来 JobHistoryServer 是 运行ning,但我无法打开 Job Track 页面。

(180507 16:38) 已解决

我尝试打开工作历史页面,而不是通过单击历史按钮 bun 访问“http://localhost:19888”,然后我可以打开工作历史页面!!

原因可能是

  1. mapred-site.xml等人的设置属性(Phani Kumar Yadavilli先生建议)
  2. 是否 运行 作业历史记录服务器进程。
  3. 使用 URL 访问,不使用 历史记录 按钮
  4. Hadoop 的版本。

您尚未指定所使用的 Hadoop 版本。有一个关于这个问题的 JIRA,从 v2.9 开始可以得到修复

https://issues.apache.org/jira/browse/YARN-4330?devStatusDetailDialog=repository

您可以尝试根据您的系统配置设置以下参数。

YARN 目前有两种计算器——DefaultResourceCalculator 和 DominantResourceCalculator。

DefaultResourceCalculator 在计算时只考虑内存。这就是为什么在默认情况下在 CapacityScheduler 中执行分配时忽略 CPU 要求的原因。所有分配的数学计算都减少到只检查资源请求所需的内存以及在特定调度周期期间正在查看的节点上可用的内存。

为了启用 CPU 计划,管理员和用户需要了解一些配置属性。

scheduler.capacity.resource-calculator:要在 CapacityScheduler 中启用 CPU 调度,这应该在 capacity-scheduler.xml 文件中设置为 org.apache.hadoop.yarn.util.resource.DominantResourceCalculatornodemanager.resource.cpu-vcores:在所有节点上设置为yarn-site.xml中合适的数字。这严格取决于集群中的工作负载类型 运行,但一般建议管理员将其设置为等于机器上的物理核心数。 MapReduce 框架有自己的配置,用户应该使用这些配置来利用 YARN 中的 CPU 调度。

map.cpu.vcores:设置为每个map任务需要的vcore数。 reduce.cpu.vcores:设置为每个reduce任务所需的vcore数。 yarn.app.mapreduce.am.resource.cpu-vcores:设置为MR AppMaster需要的vcore数。