自定义hadoop的单节点mapreduce
太棒了 ✅
我们来一步步在 单台 CentOS 上跑通第一个 Hadoop MapReduce 程序,你只要已经安装好了:
JDK(建议
11
或8
)Hadoop(你之前装的是
/opt/hadoop/hadoop-3.4.1
)
接下来只要 配置伪分布式 + 运行示例 WordCount 程序 就可以了。
📝 第 1 步:配置伪分布式环境
进入 Hadoop 配置目录:
cd /opt/hadoop/hadoop-3.4.1/etc/hadoop
然后编辑以下 4 个配置文件:
core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>
hdfs-site.xml
<configuration><property><name>dfs.replication</name><value>1</value></property>
</configuration>
mapred-site.xml
先复制模板文件:
cp mapred-site.xml.template mapred-site.xml
然后写入:
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
yarn-site.xml
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>
📝 第 2 步:配置环境变量(hadoop-env.sh)
vim /opt/hadoop/hadoop-3.4.1/etc/hadoop/hadoop-env.sh
添加:
export JAVA_HOME=/opt/jdk-11.0.27
📝 第 3 步:格式化 HDFS
⚠️ 第一次用必须格式化
hdfs namenode -format
📝 第 4 步:启动 Hadoop 所有服务
start-dfs.sh
start-yarn.sh
查看是否启动成功:
jps
应看到:
NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager
📝 第 5 步:创建 HDFS 输入输出目录
hdfs dfs -mkdir -p /user/asfor/input
hdfs dfs -put /opt/hadoop/hadoop-3.4.1/etc/hadoop/*.xml /user/asfor/input
📝 第 6 步:运行自带的 WordCount MapReduce 示例
hadoop jar /opt/hadoop/hadoop-3.4.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.1.jar wordcount /user/asfor/input /user/asfor/output
📝 第 7 步:查看运行结果
hdfs dfs -cat /user/asfor/output/part-r-00000
你会看到统计每个单词次数的输出结果 🎉
✅ 完成效果
你刚刚:
启动了单节点 Hadoop 伪分布式集群
提交了第一个 MapReduce 作业
成功跑通 Hadoop 生态第一个经典程序
WordCount
如果你愿意,我可以接着教你:
用 Java 写一个 自定义 MapReduce 程序
在本地编译后
hadoop jar
提交运行