1、新建一个文本
- 执行命令:
bash
vim wordcount.txt
- 输入以下内容:
bash
Hello Hadoop
Bye Hadoop
2、上传文本到 HDFS
- 在正式上传前,要先开启服务啊(已开启的可以忽略):
bash
start-all.sh
- 在 HDFS 文件系统中新建一个 input 目录:
bash
hdfs dfs -mkdir /input
- 确认 input 目录是否创建成功:
bash
hdfs dfs -ls /
- 上传 wordcount.txt 文件到 input 目录:
bash
hdfs dfs -put wordcount.txt /input
- 确认文件是否上传成功:
bash
hdfs dfs -ls /input
3、运行 wordcount
进入 Hadoop 自带的经典案例目录:
bash
cd /opt/module/hadoop-3.2.1/share/hadoop/mapreduce
执行 wordcount 并将结果输出值 output 目录:
bash
hadoop jar hadoop-mapreduce-examples-3.2.1.jar wordcount /input /output
这条命令是在 Hadoop 环境中运行 MapReduce 示例程序中的 "词频统计(wordcount)" 任务,各部分含义如下:
-
hadoop
: HADOOP_HOME/bin 下的 shell 脚本 -
jar
: Hadoop 脚本需要的命令参数 -
hadoop jar
:Hadoop 提供的用于运行 JAR 包中 MapReduce 程序的命令。 -
hadoop-mapreduce-examples-3.2.1.jar
:Hadoop 自带的 MapReduce 示例程序 JAR 包(版本号 3.2.1,需与实际 Hadoop 版本对应),其中包含了 wordcount 等经典示例。 -
wordcount
:指定要运行的示例程序类名,这里即词频统计程序,作用是统计输入文本中每个单词出现的次数。 -
/input
:HDFS 上的输入目录路径,该目录下存放待统计的文本文件(需提前通过hdfs dfs -put
等命令上传)。 -
/output
:HDFS 上的输出目录路径,程序运行成功后,统计结果会写入该目录(注意:该目录必须是不存在的,否则会报错,需提前删除或更换名称)。
执行后,MapReduce 会自动完成 "映射(Map)" 和 "归约(Reduce)" 过程,最终在/output
目录下生成结果文件(通常是part-r-00000
),包含每个单词及其出现次数。
4、查看结果
查看运行结果所在的目录:
bash
hdfs dfs -ls /output
查看 wordcount 运行结果:
bash
hdfs dfs -cat /output/part-r-00000