我将 Hadoop 环境构建为伪分布式模式(在 OSX 上)。以下片段是配置文件。
○核心站点.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>
○yarn-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”,所以我查看了工作详细信息。然后我点击History按钮(链接到“http://[private_ip_addr]:8088/proxy/application_xxxx/”)尝试打开“Tracking URL”(下图是工作详情页面),连接被拒绝(谷歌上的错误代码 Chrome 是“ERR_CONNECTION_REFUSED”)。
我可以打开节点管理器(http://127.0.0.1:8042),如下图所示,但我无法打开“RM Home”(URL 是“http://[private_ip_addr]:8088”)。
是不是配置文件有误,还是我的网络环境不对?如果需要我的网络信息(端口等),写就写。
谢谢。
--加法--
(180506 23:00)
我检查了节点管理器日志文件。我发现发生了错误“无法确定操作系统”。以下是日志文件的一部分。
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,然后“无法确定操作系统”的错误被删除,但任务跟踪页面仍然无法正常工作。
我再次检查了 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 正在运行,但我无法打开 Job Track 页面。
(180507 16:38)已解决
我尝试打开工作历史页面而不是通过单击历史按钮 bun 访问“http://localhost:19888”,然后我可以打开工作历史页面!!
原因可能是
mapred-site.xml等设置属性(Phani Kumar Yadavilli先生推荐)最佳答案
您尚未指定所使用的 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 调度,应将其设置为 org.apache.hadoop.yarn.util。 capacity-scheduler.xml 文件中的 resource.DominantResourceCalculator。
nodemanager.resource.cpu-vcores:在所有节点上的yarn-site.xml中设置为合适的数字。这严格取决于集群中运行的工作负载类型,但一般建议管理员将其设置为等于机器上物理内核的数量。
MapReduce 框架有自己的配置,用户应该使用这些配置来利用 YARN 中的 CPU 调度。
map.cpu.vcores:设置为每个map任务所需的vcores数量。
reduce.cpu.vcores:设置为每个reduce任务所需的vcores数量。
yarn.app.mapreduce.am.resource.cpu-vcores:设置为 MR AppMaster 需要的 vcores 数。
关于Hadoop : Can't access "Tracking URL",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50200130/
我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',
我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby1.9+ 关于ruby-主要:Objectwhenrun
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request