itcareerist 发表于 2015-8-25 09:05:34

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

为何用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有什么配置需要修改?

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 中是可以执行Linuxshell命令的

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包导入有问题
页: [1]
查看完整版本: 为何用Java命令执行MapReduce一直是local模式