当前位置: 首页 > news >正文

自定义hadoop的单节点mapreduce

太棒了 ✅
我们来一步步在 单台 CentOS 上跑通第一个 Hadoop MapReduce 程序,你只要已经安装好了:

  • JDK(建议 118

  • 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 提交运行

http://www.dtcms.com/a/390456.html

相关文章:

  • C++——面向对象
  • Java 生态监控体系实战:Prometheus+Grafana+SkyWalking 整合全指南(二)
  • One-Rec semantic-ID表征
  • HTML HTML基础(5)
  • EasyDSS视频推拉流技术如何实现无人机高清推流与超低延迟直播?
  • 音视频学习(六十六):使用ffmpeg api将实时的264、265裸流封装为fmp4
  • 【音频】在Ubuntu24.04上,源码编译安装Kamailio
  • 数据库与数据仓库易混淆点——数据库不是也可以用于数据的存储吗?为什么要数据仓库
  • 02-Media-9-video_encoder.py 使用视频编码器(VENC)来捕获并编码视频,保存在TF卡中的示例程序
  • Lighthouse安全组自动化审计与加固:基于MCP协议的智能运维实践
  • PHP基础-数据类型(第九天)
  • jQuery中的函数与其返回结果
  • 自动化机器学习框架NexusCore1.0稳定版文档概述
  • 五传输层TCPUDP-思考题-停止等待-ARQ-滑动窗口
  • 使用Azure OpenAI Realtime模型实现语音助理
  • 【智能系统项目开发与学习记录】LinuxUbuntuROS2 零基础学习笔记(小白友好版)
  • Python5-线性回归
  • Windows 定时任务设置、批处理(.bat)命令详解和通过conda虚拟环境定时运行Python程序
  • 无人机图传:让画面直达掌心的传输艺术
  • Django HttpRequest 对象的常用属性
  • 常见的 2 中缓存
  • Python基于Django的微博舆情可视化系统 关键词/用户ID/评论分析 大数据项目(建议收藏)✅
  • 四大访问控制模型:OBAC、RBAC、TBAC与ABAC的对比与应用
  • 如何使用AI IDE书写Vue3数据可视化大屏项目
  • React 类名控制工具库ClassName 简化类写法 条件控制 样式处理
  • 【MySQL】用户和权限管理
  • STM32项目分享:游泳馆闸机计费管理系统设计
  • 《C++进阶之STL》【unordered_set/unordered_map 模拟实现】
  • LLM中如何添加special_token,并且尽可能保持原模型的训练效果
  • [x-cmd] 使用系统包管理器安装 x-cmd