在eclipse上提交任务到集群执行

win7下eclipse远程开发hadoop程序,分为两种:

  (1)运行【Run As】 Java Application, 打包程序为jar,上传集群执行(这里不做解释)

  (2)运行【Run As】 Run on Hadoop

重点来说说Run on Hadoop这种方式,搭建好eclipse远程开发环境,执行Run on Hadoop,程序成功了,心里窃喜,却发现是这个样子:

在eclipse上提交任务到集群执行

我明明设置job.setNumReduceTasks(6),最终本应该有6个reduce输出,怎么成了一个?

发现这里都是以LocalJobRunner本地执行的,并没有把资源提交到集群执行,我想,那就设置它去集群执行呗,于是添加:

在eclipse上提交任务到集群执行

执行,又出现了下面的错误:

在eclipse上提交任务到集群执行

尽然找不到自定义的MyMapper,这么回事,还记得集群上执行任务时,是要把资源先打打包到hdfs中,原来如此,

于是,打包hadoop程序为ttt.jar,并通过配置设置如下:

在eclipse上提交任务到集群执行

再次执行,运行成功,如下:

在eclipse上提交任务到集群执行

小结:

1、eclipse上提交任务到集群执行,很多配置还是使用的本地的,最好用代码实现

2、提交任务到集群执行,先要提交资源到hdfs上