您的位置:首页 > 编程语言 > Java开发

win7平台上使用eclipse(luna)将mapred任务上传到集群上运行

2016-09-25 14:59 381 查看

win7平台上使用eclipse(luna)将mapred任务上传到集群上运行

本地环境:

jdk版本 1.7.0_51

hadoop版本:2.4.1和2.7.2

hadoop eclipse插件:hadoop-eclipse-plugin-2.4.1.jar

hadoop集群环境:

jdk版本 1.7.0_79

hadoop版本:2.7.2

一台master,两台slaver,使用YARN做资源管理器

步骤:

配置windows上的hadoop环境

官网上下载hadoop压缩包hadoop-2.7.2.tar.gz 然后解压。在windows上使用hadoop需要下面一些文件:hadoop.dll、hadoop.exp、hadoop.lib、hadoop.pdb、libwinutils.lib、winutils.exe、winutils.pdb。这些文件网上有说是怎么生成的,我是直接在网上搜现成的。貌似不同版本的这些文件好像差别不是很大。然后还需要将hadoop.dll放在system32文件夹下。具体原理也不是很清楚。

配置eclipse上的hadoop环境

这一步主要是使用hadoop-eclipse-plugin-2.4.1.jar这个插件。这个插件网上也有生成的方法,使用https://github.com/winghc/hadoop2x-eclipse-plugin 提供的方法,使用ant编译,
ant jar -Dversion=2.7.2 -Dhadoop.version=2.7.2 -Declipse.home=/opt/eclipse -Dhadoop.home=/usr/local/hadoop
最后卡在那一晚上都没成功,最后还是放弃了,在网上下载了一个2.4.1版本的。然后就是一般的配置方法了,重启eclipse,配置hadoop路径,这个地方是可以切换版本的,我的2.4.1和2.7.2切换没有问题,然后就是编辑mapreduce配置。

配置mapred项目

将集群上的core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml四个配置文件放在项目中,注意一定要复制到src文件夹中,否则是不会起作用的。当然如果要看日志,也需要新建一个log4j.properties文件,文件内容网上随便搜。

在mapred-site.xml文件中添加如下配置:

<property>
<name>mapred.remote.os</name>
<value>Linux</value>
<description>Remote MapReduce framework's OS, can be either Linux or Windows</description>
</property>

<property>
<name>mapreduce.app-submission.cross-platform</name>
<value>true</value>
</property>


然后点run on hadoop,就能够运行了。

问题

集群中的mapred-site.xml文件中一定要配置mapreduce.framework.name为yarn,否则总是在本地运行,而不能在集群中运行。

如果报你的mapred程序的类不存在错误,那么恭喜你,前面都设置成功了,接下来只要把你项目导出jar包,然后上传到集群中的hadoop安装目录share/hadoop/mapred/lib下就可以了。当然集群中每台机器都需要这样上传的。本来以为eclipse提交任务,这些jar包可以自动传到集群上,但是细想一下,万一jar包很大呢,而且应该是需要手动传上去的。

如果不设置上节3中的 mapred.remote.os和mapreduce.app-submission.cross-platform,那么就会报:org.apache.hadoop.util.Shell.runCommand(Shell.java:545),并且提示返回值是0这样的错误。具体原理也不是很清楚。

之前一直报错,在mapred web页面发现提交的用户是hadoop而我又没有新建hadoop用户,新建了hadoop用户之后还是一样的错误,说明不是hadoop用户的问题,使用hadoop集群运行任务好像和用户没有关系。

弄了好久的使用eclipse直接运行集群上的mapred任务终于成功了,虽然了解一些hadoop的原理,但是发现是远远不够的,以后有时间,需要好好看看hadoop的源代码。下载的hadoop包中也包括了各个jar包的源码。可以好好研究研究!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop eclipse jdk win7
相关文章推荐