首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aazon EC2纱线的纺纱

问Aazon EC2纱线的纺纱
EN

Stack Overflow用户
提问于 2014-04-20 20:53:30
回答 3查看 591关注 0票数 1

我正在尝试在亚马逊EC2中配置Yarn 2.2.0的whirr。然而,我遇到了一些问题。我已经修改了whirr服务以支持yarn 2.2.0。因此,我能够启动作业并成功地运行它们。然而,我在跟踪工作进展时遇到了n个问题。

代码语言:javascript
复制
 mapreduce.Job (Job.java:monitorAndPrintJob(1317)) - Running job: job_1397996350238_0001
2014-04-20 21:57:24,544 INFO  [main] mapred.ClientServiceDelegate (ClientServiceDelegate.java:getProxy(270)) - Application state is completed. FinalApplicationStatus=SUCCEEDED. Redirecting to job history server
java.io.IOException: Job status not available 
    at org.apache.hadoop.mapreduce.Job.updateStatus(Job.java:322)
    at org.apache.hadoop.mapreduce.Job.isComplete(Job.java:599)
    at org.apache.hadoop.mapreduce.Job.monitorAndPrintJob(Job.java:1327)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1289)
    at com.zetaris.hadoop.seek.preprocess.PreProcessorDriver.executeJobs(PreProcessorDriver.java:112)
    at com.zetaris.hadoop.seek.JobToJobMatchingDriver.executePreProcessJob(JobToJobMatchingDriver.java:143)
    at com.zetaris.hadoop.seek.JobToJobMatchingDriver.executeJobs(JobToJobMatchingDriver.java:78)
    at com.zetaris.hadoop.seek.JobToJobMatchingDriver.executeJobs(JobToJobMatchingDriver.java:43)
    at com.zetaris.hadoop.seek.JobToJobMatchingDriver.main(JobToJobMatchingDriver.java:56)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212

我试过调试,问题出在ApplicationMaster上。它有一个主机名和rpc端口,其中的主机名是只能从amazon网络内部解析的内部主机名。理想情况下,它应该是一个公开的Amazon DNs名称。但是我还不能设置它。我试着像这样设置参数

yarn.nodemanager.hostname yarn.nodemanager.address

但我找不到ApplicationMaster的主机名或端口有任何变化,它们仍然是私有的amazon内部主机名。我错过了什么吗。或者我应该更改所有节点管理器节点中的/etc/hosts,以便节点管理器以公共地址开头。但这将是一个过度杀伤力right.Or有没有办法,我可以配置ApplicationMaster,以采取公共ip.So,我可以远程跟踪进度

我做这些都是因为我需要远程提交作业,我不愿意妥协这个特性。任何能指引我的人

我成功地配置了historyserver,并且我能够从远程客户端访问它。我使用配置来完成此操作。

mapreduce.jobhistory.webapp.address

当我调试时,我发现

代码语言:javascript
复制
 MRClientProtocol MRClientProxy = null;
      try {
        MRClientProxy = getProxy();
        return methodOb.invoke(MRClientProxy, args);
      } catch (InvocationTargetException e) {
        // Will not throw out YarnException anymore
        LOG.debug("Failed to contact AM/History for job " + jobId + 
            " retrying..", e.getTargetException());
        // Force reconnection by setting the proxy to null.
        realProxy = null;

由于专用地址,代理连接失败。上面的代码截取自ClientServiceDelegate

EN

回答 3

Stack Overflow用户

发布于 2014-06-25 10:10:15

我能够避免这个问题。而不是解决这个问题。问题出在云环境之外的ip解析上。

最初,我尝试更新whirr-yarn源,以使用公有ip进行配置,而不是使用内网ip。但是issues.So仍然是我放弃任务的地方。

我最后做的是从云环境本身开始工作。而不是来自云基础架构之外的主机。希望有人能找到更好的办法。

票数 0
EN

Stack Overflow用户

发布于 2016-12-10 00:24:50

我也有同样的问题。通过在mapred-site.yml中添加以下行解决了此问题。它会将您临时目录从默认的tmp目录移动到您有权限的主目录。

代码语言:javascript
复制
  <property>
    <name>yarn.app.mapreduce.am.staging-dir</name>
    <value>/user</value>
  </property>

除此之外,您还需要在hdfs上创建一个历史目录:

代码语言:javascript
复制
hdfs dfs -mkdir -p /user/history
hdfs dfs -chmod -R 1777 /user/history
hdfs dfs -chown mapred:hadoop /user/history

我发现这个link对于配置Hadoop集群非常有用。

票数 0
EN

Stack Overflow用户

发布于 2014-08-14 11:32:23

代码语言:javascript
复制
conf.set("mapreduce.jobhistory.address", "hadoop3.hwdomain:10020");
conf.set("mapreduce.jobhistory.intermediate-done-dir", "/mr-history/tmp");
conf.set("mapreduce.jobhistory.done-dir", "/mr-history/done");
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23182642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档