其他分享
首页 > 其他分享> > 1.分布式并行计算实验-WordCount单词计数

1.分布式并行计算实验-WordCount单词计数

作者:互联网

在Hadoop集群中测试WordCount功能

目标:使用Eclipse+Maven搭建Hadoop开发环境,并能编译运行官方WordCount源码。

 创建Hadoop项目

   创建 Maven 项目 在创建 Maven 项目前,请先设置设置好 Maven ,至少应该将 maven 镜像修改为国内源 在 Eclipse 中, Fil·e>New>Maven Project :

 

 

 添加Hadoop依赖

在项目的 pom.xml 文件的 project 节点下添加如下内容(在<project></project>内):
<properties> 
<hadoop.version>2.8.5</hadoop.version> 
</properties>
 <dependencies> 
<dependency>
 <groupId>org.apache.hadoop</groupId> 
<artifactId>hadoop-client</artifactId> 
<version>${hadoop.version}</version> 
</dependency>
 <dependency>
 <groupId>org.apache.hadoop</groupId>
 <artifactId>hadoop-common</artifactId>
 <version>${hadoop.version}</version> 
</dependency>
 <dependency> 
<groupId>org.apache.hadoop</groupId>
 <artifactId>hadoop-hdfs</artifactId> 
<version>${hadoop.version}</version>
 </dependency>
 </dependencies>

项目中添加了hadoop jar包

 实现WordCount功能

你可以从 hadoop 官方安装包中解压出 WordCount 源码,压缩包内路径为: hadoop- 2.8.5\share\hadoop\mapreduce\sources\hadoop-mapreduce-examples-2.8.5- sources.jar ,利用解压工具直接从 jar 包中解压出 WordCount.java

 部分官方源码:

 构建项目

在项目上击右键,选择【 run as 】 > 【 maven build... 】,在 Goals 中输入 clean package :

 

 在集群中测试WordCount功能

启动集群

start-all.sh

jps查看运行,结果起码要有:

[root@hadoopnode1 ~]# jps
136 NameNode
252 ResourceManager
862 Jps

在虚拟机中创建一个测试文件(myword.txt)

[root@hadoopnode1 ~]# mkdir -p /home/demo   
[root@hadoopnode1 ~]# cd/home/demo 
[root@hadoopnode1 demo]# vi myword.txt

文件中写入(当然这只是测试的数据,具体数据还是根据各位的需求):

this is a wordcount test! 
hello! my name is jerry. 
who are you! 
where are you from! 
the end! 
在hdfs上创建input文件夹( -p是沿路径建立父目录 -p 是沿路径建立父目录 ):
[root@hadoopnode1 demo]# hdfs dfs -mkdir -p /wordcount/input
将测试文件上传到hdfs上:
[root@hadoopnode1 demo]# hdfs dfs -put myword.txt /wordcount/input

上传jar包并运行:

将打包好的 /bigdataprotrain/target/bigdataprotrain-0.0.1-SNAPSHOT.jar 利用 ftp 工具上传 到集群 namenode 节点 /home/demo 目录下: 命令解释:hadoop jar jar包名 包名.类名 输入文件地址 输出文件地址
[root@hadoopnode1 demo]# hadoop jar bigdataprotrain-0.0.1- SNAPSHOT.jar com.issedu.bigdatapro.sample.WordCount /wordcount/input/ /wordcount/output

查看输出结果:

[root@hadoopnode1 demo]# hdfs dfs -ls /wordcount/output

此时的结果:

注意:

_SUCCESS 文件字节数为 0 ,没有任何内容,只是标记输出成功而已,实际内容在 part-r- 00000 中,该文件可能会有多个,而且序号不同
Found 2 items -rw-r--r-- 3 root supergroup 0 2020-03-18 09:42 /wordcount/output/_SUCCESS -rw-r--r-- 3 root supergroup 120 2020-03-18 09:42 /wordcount/output/part-r-00000
下载到本地查看
[root@hadoopnode1 demo]# hdfs dfs -get /wordcount/output/part* 
[root@hadoopnode1 demo]# cat part-r-00000

结果如下:

a 1 are 2 end! 1 from! 1 hello! 1 is 2 jerry. 1 my 1 name 1 test! 1 the 1 this 1 where 1 who 1 wordcount 1 you 1 you! 1

标签:WordCount,wordcount,hadoop,jar,并行计算,hadoopnode1,demo,root,分布式
来源: https://blog.csdn.net/qq_51741039/article/details/120369011