我将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
我可以打开&#34; http://localhost:8088&#34;,所以我查看了工作细节。然后点击了历史记录按钮(链接到&#34; http://[private_ip_addr]:8088/proxy/application_xxxx/&#34;),尝试打开&#34;跟踪网址&#34;(图片下方是工作明细页面),连接被拒绝(谷歌浏览器上的错误代码是&#34; ERR_CONNECTION_REFUSED&#34;)。
我可以打开一个节点管理器(http://127.0.0.1:8042),如下面的屏幕截图,但我无法打开&#34; RM Home&#34;(网址是&#34; http://[private_ip_addr]:8088&# 34)。
配置文件是否有任何错误,或者我的网络环境不正确?如果您需要我的网络信息(端口等),请在编写时写下来。
感谢。
- 加成 -
(180506 23:00)
我检查了节点管理器日志文件。我发现那里发生了错误&#34;无法确定OS&#34;。下面是日志文件的一部分。
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然后出现错误&#34;无法确定操作系统&#34;已删除,但仍然没有,任务跟踪页面无法正常工作。
我再次检查了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正在运行,但我无法打开“作业跟踪”页面。
(180507 16:38)已解决
我尝试打开作业历史记录页面,而不是通过单击HISTORY按钮bun访问&#34; http://localhost:19888&#34;,然后我可以打开一个作业历史记录页面!
原因可能是
mapred-site.xml
及其他人的设定属性(Phani Kumar Yadavilli先生建议)答案 0 :(得分:2)
您尚未指定正在使用的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.DominantResourceCalculator
。
nodemanager.resource.cpu-vcores
:在所有节点上的yarn-site.xml
中设置相应的数字。这严格依赖于群集中运行的工作负载类型,但一般建议管理员将其设置为等于计算机上的物理核心数。
MapReduce框架有自己的配置,用户应该使用这些配置来利用YARN中的CPU调度。
map.cpu.vcores
:设置为每个地图任务所需的vcores数。
reduce.cpu.vcores
:设置为每个reduce任务所需的vcores数。
yarn.app.mapreduce.am.resource.cpu-vcores
:设置为MR AppMaster所需的vcores数量。