win7下eclipse远程开发hadoop程序,分为两种:
(1)运行【Run As】 Java Application, 打包程序为jar,上传集群执行(这里不做解释)
(2)运行【Run As】 Run on Hadoop
重点来说说Run on Hadoop这种方式,搭建好eclipse远程开发环境,执行Run on Hadoop,程序成功了,心里窃喜,却发现是这个样子:
我明明设置job.setNumReduceTasks(6),最终本应该有6个reduce输出,怎么成了一个?
发现这里都是以LocalJobRunner本地执行的,并没有把资源提交到集群执行,我想,那就设置它去集群执行呗,于是添加:
执行,又出现了下面的错误:
尽然找不到自定义的MyMapper,这么回事,还记得集群上执行任务时,是要把资源先打打包到hdfs中,原来如此,
于是,打包hadoop程序为ttt.jar,并通过配置设置如下:
再次执行,运行成功,如下:
小结:
1、eclipse上提交任务到集群执行,很多配置还是使用的本地的,最好用代码实现
2、提交任务到集群执行,先要提交资源到hdfs上