[转帖]Hadoop MapReduce Job的两种编译方式_Hadoop,ERP及大数据讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Hadoop,ERP及大数据讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3078 | 回复: 0   主题: [转帖]Hadoop MapReduce Job的两种编译方式        下一篇 
周逸涵
注册用户
等级:少校
经验:871
发帖:83
精华:0
注册:2013-7-8
状态:离线
发送短消息息给周逸涵 加好友    发送短消息息给周逸涵 发消息
发表于: IP:您无权察看 2013-7-10 10:19:03 | [全部帖] [楼主帖] 楼主

以编译hadoop-mapred-examples-0.22.0.jar中的WordCount为例。

Version:
hadoop-0.22.0
Compile In Eclipse:


新建一个项目WordCount,新建package: demo.mapreduce,并将hadoop-0.22.0\mapreduce\src\examples\org\apache\hadoop\examples下的WordCount.java文件放到该package下。

为了能够编译成功,需要添加以下jar:

hadoop-0.22.0\hadoop-mapred-0.22.0.jar
hadoop-0.22.0\hadoop-hdfs-0.22.0.jar
hadoop-0.22.0\hadoop-common-0.22.0.jar
hadoop-0.22.0\lib\commons-cli-1.2.jar


添加方式:

项目右键->Build Path->Configure Build Path...->Add External Jars...

编译导出为WordCount.jar,上传到Linux环境,通过以下方式执行:

1hadoop jar WordCount.jar demo.mapreduce.WordCount /input_file /output_file


Compile in Linux:


假设WordCount.java中的包结构为:

package demo.mapreduce;


使用如下命令编译:

1mkdirmapreduce_classes


2javac -classpath ${HADOOP_HOME}/hadoop-mapred-0.22.0.jar:


3${HADOOP_HOME}/hadoop-hdfs-0.22.0.jar:


4${HADOOP_HOME}/hadoop-common-0.22.0.jar:


5${HADOOP_HOME}/lib/commons-cli-1.2.jar


6-d mapreduce_classes WordCount.java


编译过后,在mapreduce_classes/demo/mapreduce目录下会看到编译后产生的class文件:

WordCount.class, WordCount$IntSumReducer.class,  WordCount$TokenizerMapper.class。


使用如下命令打包:

1jar -cvf WordCount.jar -C mapreduce_classes/ .


通过以下方式执行:

view source
print?


1hadoop jar WordCount.jar demo.mapreduce.WordCount /input_file /output_file




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论