win7平台上使用eclipse(luna)将mapred任务上传到集群上运行
2016-09-25 14:59
381 查看
win7平台上使用eclipse(luna)将mapred任务上传到集群上运行
本地环境:
jdk版本 1.7.0_51hadoop版本: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包的源码。可以好好研究研究!
相关文章推荐
- win7使用eclipse连接hadoop集群,运行mapreduce报错之:org.apache.hadoop.security.AccessControlException
- win7使用eclipse连接hadoop集群,运行mapreduce报错之Failed to set permissions of path
- win7(64位)平台下Cygwin+Eclipse搭建Hadoop单机开发环境 (四) 导入Hadoop源码+wordcount程序+运行
- Windows上运行Eclipse使用virtualbox搭建的Ubuntu的hadoop集群服务
- Ubuntu系统下的Hadoop集群(4)_使用Eclipse编译运行MapReduce程序
- 在windows上使用eclipse提交Spark任务到Spark平台上
- 【数据平台】Eclipse+MapReduce开发环境(集群运行模式)
- 在windows上使用eclipse提交Spark任务到Spark平台上
- windows eclipse远程连接hadoop集群并提交任务运行
- 如何在linux上使用Eclipse+CDT来运行C/C++平台
- window7使用eclipse提交Hadoop作业到Hadoop集群运行方法
- spark学习8之eclipse安装scala2.10和spark编译环境并上传到集群运行
- Permission denied: win7下面eclipse上传本地文件到DFS && 运行M/R程序时出现的同样的错误解决方法
- 【数据平台】Eclipse+Scala开发环境(本机和集群两个运行模式)
- spark源码学习(八):spark具体是如何使用集群的资源去运行任务
- (转)Permission denied: win7下面eclipse上传本地文件到DFS && 运行M/R程序时出现的同样的错误解决方法
- Win7上使用Eclipse运行Nutch-Injector: java.io.IOException问题解决
- HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo
- Android自动化工具Monkeyrunner使用(七) ——在linux环境ubuntu平台上使用Eclipse运行monkeyrunne
- HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo