在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>
实现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
[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
将打包好的
/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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。