windows下用Eclipse开发Wordcount程序并生成jar包上传到hadoop集群去执行

因为我安装的是centos7 服务器版本而非桌面版本,因此没办法在namenode所在虚拟机上安装Eclipse等开发工具。本来想到可以在本地Eclipse中添加hadoop插件,然后就可以直接在本地开发和测试,但无奈鼓捣了一天最后以失败告终。因此改变思路,想到用在本地开发后生成jar包,然后发送到namenode节点去运行的方式。这种方式与上一种的区别就是没法在本地运行(因为没有配置hadoop)。

如果还没搭建hadoop,可参考这篇文章,以下内容也是在此集群基础上进行的。

因为服务器hadoop集群已搭建好,所以这里主要介绍windows本地配置信息。

配置信息:

windows系统版本:win10家庭版

Eclipse版本:Mars.2 (4.5.2)

jdk版本:10.0.1

 

步骤

首先在Eclipse中新建java项目

 

项目建成后,能够看到项目结构如下所示,src文件夹此时是空的

接下来右键单击src新建包和类,然后就进入Wordcount程序的代码编写阶段

为了方便偷了个懒,我直接在网上找了一个hadoop自带的Wordcount源码,复制过来。发现很多错误,原因是没有导入相应的jar包。

因此去找需要的jar包。因为运行的是Wordcount程序,只需要如下三个jar包:

  1. $HADOOP_HOME/share/hadoop/common/hadoop-common-2.6.0.jar

  2. $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.0.jar

  3. $HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar

导入后不再报错,下一步就是生成jar文件。右键单击包,选择Export-->Java-->JAR file-->next,输入jar文件的文件名和生成路径

连点两次next后,进入如下界面,选择程序主类,然后点击finish结束。

将生成的jar文件上传到namenode节点,我上传的路径是$HADOOP_HOME/share/hadoop/mapreduce,然后在此路径下执行如下命令 hadoop jar wordcount_test.jar /input/text.txt /output4。(由于我事先在HDFS上创建了/input/text.txt,因此这里省略此步骤,具体可参考这里

注意!!!这里jar文件后面直接是输入和输出参数,并没有像直接运行自带的hadoop-mapreduce-examples-2.8.0.jar文件时那样还要在jar文件后面输入主类名。如果此处也输入了主类名WordCount_test则会报错(因为这个被折磨了好一阵了)。猜测是不是生成jar文件时,选择了Main class,所以这里就不用再指定了??

(发现csdn改版了?在哪里改字体颜色???)

至此成功完成本地开发MapReduce程序后,生成jar包发送给集群运行的测试过程。

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值