【问题标题】:Can't run a MapReduce job on hadoop 2.4.0无法在 hadoop 2.4.0 上运行 MapReduce 作业
【发布时间】:2014-08-20 07:29:07
【问题描述】:

我是 hadoop 新手,这是我的问题。我已经在 3 台机器的集群上配置了带有 jdk1.7.60 的 hadoop 2.4.0。我能够执行hadoop的所有命令。现在我修改了 wordcount 示例并创建了 jar 文件。我已经在 hadoop 1.2.1 上执行了这个 jar 文件并得到了结果。但现在在 hadoop 2.4.0 上我没有得到任何结果。

用于执行的命令

$hadoop jar WordCount.jar WordCount /data/webdocs.dat /output

我从设置中收到以下消息:

14/06/29 19:35:18 INFO client.RMProxy: Connecting to ResourceManager at /192.168.2.140:8040
14/06/29 19:35:18 WARN mapreduce.JobSubmitter: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
14/06/29 19:35:19 INFO input.FileInputFormat: Total input paths to process : 1
14/06/29 19:35:19 INFO mapreduce.JobSubmitter: number of splits:12
14/06/29 19:35:19 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1403905542893_0004
14/06/29 19:35:19 INFO impl.YarnClientImpl: Submitted application application_1403905542893_0004
14/06/29 19:35:19 INFO mapreduce.Job: The url to track the job: http://192.168.2.140:8088/proxy/application_1403905542893_0004/
14/06/29 19:35:19 INFO mapreduce.Job: Running job: job_1403905542893_0004

此时没有消息更改。我等了 15 到 20 分钟,但还是一样。

这是我在资源管理器的网页上看到的关于该工作的内容:

State - ACCEPTED
FinalStatus - UNDEFINED
Progress - (progress bar in 0%)
Tracking UI - UNASSIGNED

Apps Submitted - 1
Apps Pending - 1
Apps Running - 0

我尝试了另一个 yarn 命令来执行,但得到了相同的结果

$yarn jar WordCount.jar WordCount /data/webdocs.dat /output

这是jps的输出:

21485 NameNode
23142 DataNode
28504 Jps
21704 ResourceManager
22082 JobHistoryServer

我们将非常感谢任何帮助或指导。

【问题讨论】:

  • 您需要查看 RM 日志,看看是否有什么奇怪的地方。它已接受您的应用,但尚未运行。也许您正在请求您的 RM 可用的更多资源。
  • 嘿,除了是 Hadoop 新手,我也是 Java 新手。请你告诉我如何创建 Word Count jar?
  • @nish 使用命令 javac filename.java 编译您的 filename.java 现在使用此命令创建 jar 文件 jar cvf filename.jar .*.class

标签: java hadoop mapreduce hadoop-yarn


【解决方案1】:

我解决了这个问题。这是hadoop的配置文件中的错误。 资源管理器的 8040 端口绑定异常。

我将 hadoop yarn-site.xml 从(旧 yarn-site.xml)更改为:

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value>192.168.2.140:8025</value>
</property>
<property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>192.168.2.140:8030</value>
</property>
<property>
  <name>yarn.resourcemanager.address</name>
  <value>192.168.2.140:8040</value>
</property>
</configuration>

到(新的 yarn-site.xml):

<configuration>
 <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>
 <property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>
</configuration>

我删除了hadoop配置中的另一行 然后我执行以下命令来启动资源管理器和节点管理器

$yarn-daemon.sh start nodemanager
$yarn-daemon.sh start resourcemanager

然后我尝试执行我的工作,它成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多