分享

为何用Java命令执行MapReduce一直是local模式

itcareerist 发表于 2015-8-25 09:05:34 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 16279
为何用Java命令执行MapReduce一直是local模式?
用java -cp xxx.jar来运行的,但代码里已经设置了conf属性mapreduce.framework.name为yarn。发现永远是local模式,导致执行很慢,jobHistory里也我记录。
如果使用hadoop jar xxx.jar xxxx.class,则正常,非local模式,而且JobHistory里面有数据。
各位大神,难道在代码里面设置mapreduce.framework.name没有效果。
顺便说一下,我的Hadoop环境为CDH5.X,我在另外一个国内的Hadoop商业版本里,用java命令执行Mapreduce则可以成功使用yarn模式。难道CDH有什么配置需要修改?

已有(6)人评论

跳转到指定楼层
arsenduan 发表于 2015-8-25 10:02:09
这个没有必要太纠结的,不同的工具可能对他们的解释不太一样
回复

使用道具 举报

itcareerist 发表于 2015-8-25 11:13:08
arsenduan 发表于 2015-8-25 10:02
这个没有必要太纠结的,不同的工具可能对他们的解释不太一样

但是local模式是单点运行的,效率非常差。而我MapReduce是通过应用程序去触发的,无法使用hadoop jar方式执行。

回复

使用道具 举报

bioger_hit 发表于 2015-8-25 15:00:46
itcareerist 发表于 2015-8-25 11:13
但是local模式是单点运行的,效率非常差。而我MapReduce是通过应用程序去触发的,无法使用hadoop jar方式 ...

java 中是可以执行Linux  shell命令的
回复

使用道具 举报

DavidShao 发表于 2017-10-25 18:43:13
请问楼主解决了么?我也遇到了同样的问题。。,???
回复

使用道具 举报

NEOGX 发表于 2017-10-25 21:57:01
DavidShao 发表于 2017-10-25 18:43
请问楼主解决了么?我也遇到了同样的问题。。,???

Configuration conf = new Configuration();
//这句话很关键
conf.set("mapred.job.tracker", "192.168.1.2:9001");

回复

使用道具 举报

DavidShao 发表于 2018-6-15 13:58:02
NEOGX 发表于 2017-10-25 21:57
Configuration conf = new Configuration();
//这句话很关键
conf.set("mapred.job.tracker", "192.16 ...

多谢,我已经解决了,是我的jar包导入有问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条