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包名 包名.类名 输入文件地址 输出文件地址- /wordcount/input/是输入文件所在目录,需事先建立
- /wordcount/output是输出文件所在目录,output目录是自动创建的,不可事先存
- 在,否则会出错,如存在请事先删除。
- com.issedu.bigdatapro.sample.WordCount是包名加含main方法的类名
[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