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包发送给集群运行的测试过程。

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: Hadoop集群运行WordCount的步骤如下: 1. 准备数据:将需要统计的文本数据上传到Hadoop集群中的HDFS文件系统中。 2. 编写MapReduce程序:编写WordCount的MapReduce程序,其中包括Mapper类和Reducer类。 3. 打包程序:将编写好的MapReduce程序打包成jar包。 4. 提交作业:使用hadoop jar命令将jar包提交Hadoop集群中运行。 5. 查看结果:等待作业运行完成后,在Hadoop集群中查看统计结果。 具体的步骤可以参考Hadoop官方文档或者其他相关教程。 ### 回答2: Hadoop是一款分布式计算框架,通过将数据分散到不同的机器上处理,从而实现了大规模数据的快速处理。Hadoop集群的运行需要通过分布式计算任务进行实现。WordcountHadoop的一个经典实例,可以用来计算数据中每个单词出现的次数。 在Hadoop集群运行Wordcount首先需要准备数据,将数据上传到Hadoop文件系统HDFS中,可以使用Hadoop命令行工具或Hadoop API将数据上传到Hadoop中。上传完数据后,需要编写MapReduce程序对数据进行处理。MapReduce是Hadoop的计算模型,它将输入数据划分成若干分片,每个分片由一个Map任务处理,并将结果输出到一个临时文件,在Reduce任务中对这个临时文件进行整合从而得到最终结果。 在编写程序时,需要定义Map和Reduce的业务逻辑。在Wordcount中,Map任务的业务逻辑是读取每个文档中的单词,并将每个单词作为Key值输出,Value值设置为1,表示出现的次数。Reduce任务的业务逻辑是将相同Key的Value值进行累加,从而得出每个单词出现的总次数。 最后,将编写好的MapReduce程序打包上传到Hadoop集群中,通过YARN ResourceManager调度Map和Reduce任务分配给不同的计算节点执行。任务执行完成后,结果将输出到指定的输出目录中。 总的来说,Hadoop集群运行Wordcount需要进行以下几步操作:准备数据、编写MapReduce程序、上传程序提交任务、等待任务运行完成并输出结果。在程序运行过程中需要进行日志跟踪和任务管理,以确保任务的正常运行和结果正确输出。 ### 回答3: Hadoop集群运行wordcountHadoop的一个基本例子,用于理解Hadoop MapReduce框架的运行方式。下面是具体步骤: 1.安装Hadoop 首先需要在每一台机器上安装Hadoop集群,并配置好环境变量。在安装完成后,需要测试安装是否成功,可以执行hadoop version命令,能够看到输出Hadoop的版本信息,则说明Hadoop已安装成功。 2.编写MapReduce作业 在该集群上运行wordcount需要编写MapReduce作业,这个作业包含了map和reduce方法代码。在map方法中,通过空格将每个单词分离出来,并将其映射到一个键值对中;在reduce方法中,将所有相同键值对的值加起来,得到对应单词出现的频率。 3.上传文件到HDFS 需要将要处理的文件上传到HDFS中。可以使用以下命令将文件上传到HDFS中: ``` hadoop fs -mkdir /input hadoop fs -put input_file /input ``` 4.提交MapReduce作业 可以使用以下命令提交MapReduce作业: ``` hadoop jar wordcount.jar WordCount /input /output ``` 其中,wordcount.jar是MapReduce的Java代码打包好的JAR文件,后面跟着两个参数,第一个参数是输入文件所在的路径(HDFS中的路径),第二个参数是输出文件所在的路径。 5.查看结果 等待作业完成后,可以通过以下命令查看结果: ``` hadoop fs -cat /output/part-r-00000 ``` 其中,part-r-00000是reduce任务的输出文件名称。 通过以上步骤,就可以在Hadoop集群上运行wordcount作业并获取结果。需要注意的是,在实际生产环境中,需要对Hadoop集群进行更细致的配置和优化,以确保作业可以在最短时间内完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值