目录
前言
Hadoop的单词统计(Word Count)是一个经典的MapReduce示例,用于计算输入文本文件中每个单词出现的次数。本指南旨在帮助读者在搭建完Hadoop集群后运行单词统计程序,并最终分析输出结果,全程详细解析,帮助读者深入理解大数据处理的核心流程。
一、启动hadoop HA高可用集群
1. 启动hadoop集群
切换到Hadoop安装目录的sbin子目录,并执行启动脚本。
位置:/usr/local/src/hadoop/sbin
./start-all.sh
2. 启动zookeeper集群
ZooKeeper是Hadoop HA高可用性的关键组件,确保ZooKeeper集群正常启动。
位置:/usr/local/src/zookeeper/bin
./zkServer.sh start
3. 验证集群状态
通过Hadoop和ZooKeeper的管理界面或使用命令行工具,验证所有服务组件均正常运行。
4.启动脚本提供
hadoop
#!/bin/bash
case $1 in
"start"){
/usr/local/src/hadoop/sbin/start-dfs.sh
/usr/local/src/hadoop/sbin/start-yarn.sh
};;
"stop"){
/usr/local/src/hadoop/sbin/stop-dfs.sh
/usr/local/src/hadoop/sbin/stop-yarn.sh
};;
esac
zookeeper
for host in master slave1 slave2 #节点名称
do
case $1 in
"start"){
echo "------------ $host zookeeper -----------"
ssh $host "source .bash_profile; zkServer.sh start"
};;
"stop"){
echo "------------ $host zookeeper -----------"
ssh $host "source .bash_profile; zkServer.sh stop"
};;
"status"){
echo "------------ $host zookeeper -----------"
ssh $host "source .bash_profile; zkServer.sh status"
};;
esac
done
jps

#! /bin/bash
for host in master slave1 slave2
do
echo ----------$host----------
ssh $host /usr/local/src/jdk/bin/jps
done
二、准备数据并上传至HDFS
注意:在进行单词统计时必须在保持active活跃状态下的节点中进行操作,否则会出现错误
1.创建HDFS输入目录
位置:/usr/local/src/hadoop/
bin/hdfs dfs -mkdir -p /data/input
2.准备本地单词文件,并随意添加字符
位置:/usr/local/src/hadoop/data/
touch my-wordcount.txt
3.上传本地文件至HDFS
位置:/usr/local/src/hadoop/
bin/hdfs dfs -put /usr/local/src/hadoop/data/my-wordcount.txt /data/input
三、运行Hadoop内置的单词统计程序
1.定位MapReduce示例JAR包
位置:/usr/local/src/hadoop/share/hadoop/mapreduce
2.执行单词统计作业
位置:/usr/local/src/hadoop/
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar wordcount /data/input/my_wordcount.txt /data/out/my_wordcount
下图代表运行成功
3.监控作业执行
通过Hadoop的Web界面或命令行工具监控作业的执行状态,确保作业成功完成。
四、查看结果
方法一:查看HDFS上输出目录中的结果文件
分析输出结果
了解每个单词在输入文本中的出现次数,以及统计结果的准确性。
方法二:在虚拟机中查看结果
位置:/usr/local/src/hadoop/
bin/hdfs dfs -cat /data/output/my-wordcount/part-r-00000
五、总结
通过虚拟机实现Hadoop单词统计是一个很好的学习和实践大数据处理的方式。通过搭建Hadoop集群、准备数据、运行作业,这不仅增强了我们对大数据处理流程的理解,也提高了我们运用Hadoop进行实际数据处理的能力。