Hadoop多Job并行处理的实例详解

2025-05-29 0 44

Hadoop多Job并行处理的实例详解

有关Hadoop多Job任务并行处理,经过测试,配置如下:

首先做如下配置:

1、修改mapred-site.xml添加调度器配置:

?

1

2

3

4
<property>

<name>mapred.jobtracker.taskScheduler</name>

<value>org.apache.hadoop.mapred.FairScheduler</value>

</property>

2、添加jar文件地址配置:

?

1

2

3

4
<property>

<name>hadoopTest.jar</name>

<value>所生成jar的地址</value>

</property>

Java基本代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35
// 获取各个Job,有关Job的创建,这里就不贴上来了。

Job job_base = (Job) 。。。;

Job job_avg = (Job) 。。。;

Job job_runCount = (Job) 。。。;

Job job_activeUser = (Job) ....;

job_base.setJarByClass(CapuseDateTimerTask.class);

job_avg.setJarByClass(CapuseDateTimerTask.class);

job_runCount.setJarByClass(CapuseDateTimerTask.class);

job_activeUser.setJarByClass(CapuseDateTimerTask.class);

// 执行完job_base才开始并行以下三个Job;

if (job_base.waitForCompletion(true)) {

FileUtil.hdfsFileHandle(jobBase);

// 并行Job

job_avg.submit();

job_runCount.submit();

job_activeUser.submit();

}

boolean bln1 = job_avg.isComplete();

boolean bln2 = job_runCount.isComplete();

boolean bln3 = job_activeUser.isComplete();

// 计算Job是否完成

while (!bln1 || !bln2 || !bln3) {

bln1 = job_avg.isComplete();

bln2 = job_runCount.isComplete();

bln3 = job_activeUser.isComplete();

}

最后将这些代码组装至Main方法,使用Hadoop执行命令运行:

hadoop jar jar包名称 方法入口所在的类

如:

?

1
hadoop jar hadoopTest.jar ch03.test Test

可以通过50030端口来监控Job的并行状态,这里就不多说了!!

解释:

1、配置Jar地址可以解决打包所生成的jar包后,运行时出现ClassNotFound的问题;

2、给多个Job设定setJarByClass,经测试,如果不设定此类,运行时会出现ClassNotFound错误,其中CapuseDateTimerTask为Main方法所在的类名;

3、waitForCompletion与submit方法是有区别的,waitForCompletion是串行,而submit是并行,正是因为submit是并行所以后续的代码操作需要取其执行是否完成的状态来做判断处理即:isComplete();

4、以上Job采用的是:org.apache.hadoop.mapreduce.Job

以上代码操作在单机/集群上测试都通过!

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/vtopqx/article/details/8589350

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Hadoop多Job并行处理的实例详解 https://www.kuaiidc.com/114306.html

相关文章

发表评论
暂无评论