本节书摘来自华章计算机《深入理解大数据:大数据处理与编程实践》一书中的第2章,第2.4节,作者 主 编:黄宜华(南京大学)副主编:苗凯翔(英特尔公司),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.4 Hadoop MapReduce程序开发过程
Hadoop MapReduce程序的开发一般是在程序员本地的单机Hadoop系统上进行程序设计与调试,然后上载到Hadoop集群上运行。开发环境可以使用Eclipse,也可以使用其他开发环境,如IntelliJ。本节仅仅介绍使用Eclipse开发Hadoop程序的过程。
Eclipse是一个开源的软件集成开发环境(IDE),可以提供对Java应用的编程开发所需要的完整工具平台。Eclipse官方网站:http://www.eclipse.org/。
可以下载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任务取样的个数。