Eclipse调用hadoop2运行MR程序

hadoop:hadoop2.2 ,windows myeclipse环境;

Eclipse调用hadoop运行MR程序其实就是普通的java程序可以提交MR任务到集群执行而已。在Hadoop1中,只需指定jt(jobtracker)和fs(namenode)即可,一般如下:

Configuration conf = new Configuration();
conf.set("mapred.job.tracker", "192.168.128.138:9001");
conf.set("fs.default.name","192.168.128.138:9000");
上面的代码在hadoop1中运行是ok的,完全可以使用java提交任务到集群运行。但是,hadoop2却是没有了jt,新增了yarn。这个要如何使用呢?最简单的想法,同样指定其配置,试试。

Configuration conf = new YarnConfiguration();
			  conf.set("fs.defaultFS", "hdfs://node31:9000");
			  conf.set("mapreduce.framework.name", "yarn");
			  conf.set("yarn.resourcemanager.address", "node31:8032");
恩,这样配置后,可以运行,首先是下面的错误:

2014-04-03 21:20:21,568 ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
	at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:278)
	at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)
	at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)
	at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
	at org.apache.hadoop.yarn.conf.YarnConfiguration.<clinit>(YarnConfiguration.java:345)
	at org.fansy.hadoop.mr.WordCount.getConf(WordCount.java:104)
	at org.fansy.hadoop.mr.WordCount.runJob(WordCount.java:84)
	at org.fansy.hadoop.mr.WordCount.main(WordCount.java:47)

这个错误不用管,这个好像是windows调用的时候就会出的错误。

然后是什么权限问题之类的,这个时候就需要去调整下权限,至少我目前是这样做的。调整的权限主要有/tmp 以及运行wordcount的输入、输出目录。命令如下: $HADOOP_HOME/bin/hadoop fs -chmod -R 777 /tmp 。

然后直到你出现了下面的错误,那么,好了,可以说你已经成功了一半了。

2014-04-03 20:32:36,596 ERROR [main] security.UserGroupInformation (UserGroupInformation.java:doAs(1494)) - PriviledgedActionException as:Administrator (auth:SIMPLE) cause:java.io.IOException: Failed to run job : Application application_1396459813671_0001 failed 2 times due to AM Container for appattempt_1396459813671_0001_000002 exited with  exitCode: 1 due to: Exception from container-launch: 
org.apache.hadoop.util.Shell$ExitCodeException: /bin/bash: line 0: fg: no job control

	at org.apache.hadoop.util.Shell.runCommand(Shell.java:464)
	at org.apache.hadoop.util.Shell.run(Shell.java:379)
	at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:589)
	at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:283)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:79)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:724)


.Failing this attempt.. Failing the application.
用上面出现的错误去google,可以得到这个网页:https://issues.apache.org/jira/browse/MAPREDUCE-5655 。 恩,对的。这个网页就是我们的solution。

我们分为1、2、3步骤吧。

1. 修改MRapps.java 、YARNRunner.java的源码,然后打包替换原来的jar包中的相应class文件,这两个jar我已经打包,可以在这里下载http://download.csdn.net/detail/fansy1990/7143547 。然后替换集群中相应的jar吧,同时需要注意替换Myeclipse中导入的包。额,说起Myeclipse中的jar包,这里还是先上幅jar包的图吧:

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
要在 Eclipse运行 Hadoop 程序,需要按照以下步骤进行设置: 1. 下载并安装 Hadoop。 2. 在 Eclipse 中安装 Hadoop 插件。 3. 创建一个新的 Java 项目。 4. 将 Hadoop 库添加到项目中。 5. 在项目中创建一个新的 Hadoop MapReduce 类。 6. 在类中实现 Mapper 和 Reducer 接口。 7. 配置 Hadoop 环境和运行参数。 8. 运行程序。 以下是更详细的步骤: 1. 下载并安装 Hadoop 首先,需要下载并安装 Hadoop。可以从 Hadoop 的官方网站(http://hadoop.apache.org/)上获得最新版本的 Hadoop。安装过程可以参考官方文档或网上教程。 2. 在 Eclipse 中安装 Hadoop 插件 在 Eclipse 中安装 Hadoop 插件可以帮助开发人员更方便地开发和调试 Hadoop 程序。可以通过 Eclipse 的“帮助”菜单中的“Eclipse Marketplace”选项来搜索并安装 Hadoop 插件。 3. 创建一个新的 Java 项目 在 Eclipse 中创建一个新的 Java 项目,命名为“HadoopDemo”。 4. 将 Hadoop 库添加到项目中 在项目的“Java Build Path”中添加 Hadoop 库,这样就可以使用 Hadoop 的 API。 5. 在项目中创建一个新的 Hadoop MapReduce 类 在“src”文件夹中创建一个新的 Java 类,命名为“WordCount”。这个类需要实现 Mapper 和 Reducer 接口。 6. 在类中实现 Mapper 和 Reducer 接口 在“WordCount”类中实现 Mapper 和 Reducer 接口,以便正确地处理输入数据和生成输出数据。 7. 配置 Hadoop 环境和运行参数 在 Eclipse 中配置 Hadoop 环境和运行参数,以便正确地运行程序。可以在“Run Configurations”中设置程序运行参数和环境变量。 8. 运行程序Eclipse运行程序,查看输出结果。 以上就是在 Eclipse运行 Hadoop 程序的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值