hadoop-2.2.0 mapreduce不能在ubuntu上运行

时间:2013-11-06 03:42:16

标签: java ubuntu hadoop mapreduce

我已经在64位Ubuntu 12.04.3(精确)上安装了hadoop 2.2.0,并按照博客中的建议配置了配置xml文件(http://tuliodomingos.blogspot.com.es/2013/04/installing-apache-hadoop-in-ubuntu-linux.html如果你有兴趣的话)

目标是为dfs和mapreduce建立一个“单节点集群”。

由于缺少某些库,我经常收到以下消息,但我认为这不会导致问题:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

[我尝试了maven的构建,但是对实际发生的事情感到非常困惑。在编译迭代之后似乎有迭代,我不知道发生了什么。]

无论如何,使用我下载的(非maven)hadoop,分布式文件系统似乎表现得很好。但是,当我尝试按照教程运行WordCount mapreduce示例时,我会陷入困境。作业提交正常,但它们似乎从未真正运行过。附加的“mr_output.txt”是终端返回的内容。

另外,查看本地监控站点(抱歉我不能发布这些图像),我注意到的一件事是这些站点指示零活动节点,我不明白发生了什么,考虑到dfs操作是好的。

此外,这是hdfs dfsadmin -report:

的输出
13/11/06 14:08:20 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Configured Capacity: 412849389568 (384.50 GB)
Present Capacity: 134156435456 (124.94 GB)
DFS Remaining: 134152601600 (124.94 GB)
DFS Used: 3833856 (3.66 MB)
DFS Used%: 0.00%
Under replicated blocks: 1
Blocks with corrupt replicas: 0
Missing blocks: 0

-------------------------------------------------
Datanodes available: 1 (1 total, 0 dead)

Live datanodes:
Name: 127.0.0.1:50010 (localhost)
Hostname: rimmer-Inspiron-7520
Decommission Status : Normal
Configured Capacity: 412849389568 (384.50 GB)
DFS Used: 3833856 (3.66 MB)
Non DFS Used: 278692954112 (259.55 GB)
DFS Remaining: 134152601600 (124.94 GB)
DFS Used%: 0.00%
DFS Remaining%: 32.49%
Last contact: Wed Nov 06 14:08:18 EST 2013

如果我尝试调用“yarn resoucemanager”或“yarn nodemanager”,我会收到大量的消息,我能看到的错误是:

13/11/06 14:15:11 FATAL nodemanager.NodeManager: Error starting NodeManager
java.lang.IllegalArgumentException: The ServiceName: mapreduce.shuffle set in yarn.nodemanager.aux-services is invalid.The valid service name should only contain a-zA-Z0-9_ and can not start with numbers

尽管“yarn.nodemanager.aux-services”在文件“yarn-site.xml”中被设置为“mapreduce.shuffle”

我已经经历了很多次官方文档,也很难打谷歌和论坛。任何智慧都非常感激。

最佳,

基兰

3 个答案:

答案 0 :(得分:4)

出于某种原因,服务名称的有效格式在Hadoop 2.1.0和2.2.0之间发生了变化。

正确的价值现在是mapreduce_shuffle,而不是mapreduce.shuffle

c.f。 http://hadoop.apache.org/docs/r2.2.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/PluggableShuffleAndPluggableSort.html

答案 1 :(得分:2)

即使将“yarn.nodemanager.aux-services”的值更改为“mapreduce_shuffle”,仍然会出现获取namenode的问题。

似乎Hadoop 2.2.0仅在32位机器上开箱即用,因为文件夹结构从1.2.0开始变化,现在$ HADOOP_INSTALL / lib目录只有一组库(那些它仅适用于32位系统。)

在1.2.0的早期,在该库目录中有两个子目录,名为“Linux-amd64-64”和“Linux-i386-32”,对应于x32和x64架构。

这里有一个讨论:

https://issues.apache.org/jira/browse/HADOOP-9911

还有一个页面建议您可以在x64上从源代码编译:

http://blog.csdn.net/focusheart/article/details/14058153

P.S。我没有能够编译它没有错误。上面的JIRA线程上的问题也没有得到解决。

编辑:由于以上所有,除了namenode之外的所有内容都已启动并运行,这就是为什么你会看到nogemanager,resourcemanager,secondarynamenode(据我所知它不能“替换”一个namenode)和datanode启动并运行。

答案 2 :(得分:0)

您是否尝试首先运行独立模式?