我有一个2节点Hadoop集群(主服务器和从服务器)。这两个节点都已启动并正在运行,因为我可以在localhost上检查它们的运行状况:50070。
所以我将这个150 MB的文件夹(带有纯文本)放入Master的HDFS中。然后我运行下一个命令:
hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /In/ /Out/
问题是我只获得与使用单个节点运行命令时相同的执行时间。对我来说,似乎节点并没有真正做任何并行!!
我正在检查奴隶上的日志,我有以下内容:
2015-03-18 23:52:49,455 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Receiving BP-1680309327-31.220.211.10-1426721698684:blk_1073741856_1032 src: /31.220.211.10:46035 dest: /31.220.211.35:50010
2015-03-18 23:52:51,191 INFO org.apache.hadoop.hdfs.server.datanode.DataNode.clienttrace: src: /31.220.211.10:46035, dest: /31.220.211.35:50010, bytes: 3796560, op: HDFS_WRITE, cliID: DFSClient_NONMAPREDUCE_688133940_1, offset: 0, srvID: fbea19bb-06ee-4868-af5c-0cb9699064f3, blockid: BP-1680309327-31.220.211.10-1426721698684:blk_1073741856_1032, duration: 1734807025
2015-03-18 23:52:51,191 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: PacketResponder: BP-1680309327-31.220.211.10-1426721698684:blk_1073741856_1032, type=LAST_IN_PIPELINE, downstreams=0:[] terminating
2015-03-18 23:52:59,733 INFO org.apache.hadoop.hdfs.server.datanode.BlockPoolSliceScanner: Verification succeeded for BP-1680309327-31.220.211.10-1426721698684:blk_1073741856_1032
在主人身上:
15/03/18 23:52:50 INFO mapred.Task: Task 'attempt_local1934686363_0001_r_000000_0' done.
15/03/18 23:52:50 INFO mapred.LocalJobRunner: Finishing task: attempt_local1934686363_0001_r_000000_0
15/03/18 23:52:50 INFO mapred.LocalJobRunner: reduce task executor complete.
15/03/18 23:52:50 INFO mapreduce.Job: map 100% reduce 100%
15/03/18 23:52:50 INFO mapreduce.Job: Job job_local1934686363_0001 completed successfully
15/03/18 23:52:51 INFO mapreduce.Job: Counters: 38
这是正常的吗?为什么我说我的两个节点都还活着但是在运行wordcount示例时它没有并行化?但相反,它就像一切都在本地运行!!
我似乎找不到这个问题的答案,所以如果能得到一些帮助,我会很高兴。
答案 0 :(得分:0)
问题在于,即使我的两个节点都被识别为活动,但该作业仍在本地运行。
那是因为纱线文件缺少这个属性:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
我还检查了所有节点上的所有配置文件是否相同!!在仔细检查了所有内容之后,这项工作全局进行。
另一件事是在配置群集时要注意Hadoop 1.x和Hadoop 2.x不要共享相同的配置参数。