本节书摘来自华章计算机《深入理解大数据:大数据处理与编程实践》一书中的第2章,第2.4节,作者 主 编:黄宜华(南京大学)副主编:苗凯翔(英特尔公司),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
hadoop mapreduce程序的开发一般是在程序员本地的单机hadoop系统上进行程序设计与调试,然后上载到hadoop集群上运行。开发环境可以使用eclipse,也可以使用其他开发环境,如intellij。本节仅仅介绍使用eclipse开发hadoop程序的过程。
可以下载linux版本的eclipse ide for java开发包,并安装在本地的linux系统中。
1.?启动eclipse
启动eclipse后,会出现如图2-2所示的界面
2.?创建java project
创建java project的界面如图2-3所示。

3.?配置java project
这一步需要加入外部的jar文件:hadoop-core-1.2.1.jar以及lib下所有的jar包,见图2-4。
图2-4 加入相应jar包
4.?编写程序代码
编写相应的mapreduce程序的代码,见图2-5。
图2-5 编写程序代码
5.?编译源代码
编译mapreduce程序。待完成编译时,导出jar文件,如图2-6所示。
图2-6 编译源代码
6.?本地运行调试
在导出jar文件的时候,需要指定一个主类main class,作为默认执行的一个类。将程序复制到本地hadoop系统的执行目录,可以准备一个小的测试数据,即可通过hadoop的安装包进行运行调试。
7.?远程作业提交
当需要用集群进行海量数据处理时,在本地程序调试正确运行后,可按照远程作业提交步骤,将作业提交到远程集群上运行。
以hadoop mapreduce计算pi值的示例程序为例,运行程序的命令是:
$hadoop jar $hadoop_home/hadoop-examples-1.2.1.jar pi2 5
其中,第一个参数是指要运行的map的次数;第二个参数是指每个map任务取样的个数。