大数据 -05-Hadoop 集群 集群 WordCount 超详细 真正的分布式计算 上传 HDFS MapReduce 计算 YRAN 查看任务 上传计算下载查看

PS:小知识点, yarn 应该写为: YARN,通常使用大写的 “YARN” 来指代 “Yet Another Resource Negotiator”
点一下关注吧!!!非常感谢!!持续更新!!!
🚀 AI 篇持续更新中!(长期更新)
目前 2025 年 06 月 05 日更新到:
**AI 炼丹日志-28 - Audiblez 将你的电子书 epub 转换为音频 mp3 做有声书**,持续打造实用 AI 工具指南!📐🤖
💻 Java 篇正式开启!(300 篇)
目前 2025 年 06 月 05 日更新到:
**Java-39 深入浅出 Spring - AOP 切面增强 核心概念 通知类型 XML+注解方式 附代码**
MyBatis 已完结,Spring 正在火热更新中,深入浅出助你打牢基础!
📊 大数据板块已完成多项干货更新(300 篇):
包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈!
目前 2025 年 06 月 05 日更新到:
**大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT 案例 详解**
👉 点个关注,不迷路!后续还将持续更新更多大模型+数据智能+工程实战内容,敬请期待!
章节内容
上一节完成:
Hadoop 分发
单节点启动 NameNode 初始化 DataNode 启动
YRAN 启动 ResourceManager NodeManager
集群启动 HDFS 启动 YRAN 集群启动
各种启停相关的内容
本节内容较为简单,但是需要基于前面的内容!!!
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个 Hadoop 的学习环境,供我学习。之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的 3 台机器,赶紧尝试在公网上搭建体验一下。
注意,如果你和我一样,打算用公网部署,那一定要做好防火墙策略,避免不必要的麻烦!!!请大家都以学习为目的,也请不要对我的服务进行嗅探或者攻击!!!
但是有一台公网服务器我还运行着别的服务,比如前几天发的:autodl-keeper 自己写的小工具,防止 AutoDL 机器过期的。还跑着别的 Web 服务,所以只能挤出一台 2C2G 的机器。那我的配置如下了:
2C4G 编号 h121
2C4G 编号 h122
2C2G 编号 h123

请确保上一节内容全部完毕和跑通!!!
HDFS
设计原则
HDFS 的设计目标是能够处理千兆字节级别的大数据集,并确保数据的可靠性和高效性。主要设计原则包括:
容错性:HDFS 的核心是确保数据在硬件故障情况下的安全。通过数据冗余复制机制,HDFS 将文件分为多个数据块(默认 64MB 或 128MB)并复制到不同的节点上。通常,一个数据块有 3 个副本,这样在一个或两个节点失效时仍能保证数据可用性。
高吞吐量:HDFS 专注于吞吐量而非低延迟,因此它适合批量数据处理任务,而不是低延迟需求的实时应用。
大文件的高效处理:HDFS 适合存储大文件,而不是小文件。小文件会产生大量元数据,对系统性能不利。
流式数据访问:HDFS 以一次性读写为主要操作,通常不支持多次随机写入。因此,写入一次、读取多次的应用场景更适合 HDFS。
HDFS 的架构
HDFS 采用主从架构,分为两个主要组件:NameNode 和 DataNode。
NameNode:是 HDFS 的主节点,负责管理文件系统的命名空间和元数据。它维护文件系统的目录结构和数据块的位置,决定文件如何分块以及如何在集群中分布。NameNode 并不存储实际的数据,而是存储数据块的位置。
DataNode:是 HDFS 的从节点,负责存储实际的数据块。每个 DataNode 定期向 NameNode 汇报其存储的块信息,以保证 NameNode 的元数据是最新的。当客户端请求文件时,NameNode 会提供相关的 DataNode 位置,客户端直接与 DataNode 进行数据交互。
读写流程
HDFS 的读写流程简洁而高效:
读文件:客户端向 NameNode 请求文件的位置信息,NameNode 提供该文件的数据块分布,客户端接着直接从对应的 DataNode 读取数据块。
写文件:客户端向 NameNode 请求文件的创建。NameNode 在确认文件可以创建后,分配数据块并指示客户端写入到不同的 DataNode。每个数据块被写入后,DataNode 会将副本传递给其他指定的 DataNode,以实现副本冗余。
HDFS 的核心特性
数据冗余:HDFS 通过多个副本存储数据块,确保数据安全。
故障检测和自动恢复:如果 DataNode 出现故障,NameNode 会检测到并自动将数据重新分布到其他 DataNode。
水平扩展:HDFS 可轻松扩展,添加新的 DataNode 即可增加存储容量。
兼容性:HDFS 可运行在普通的商用硬件上,降低成本。
HDFS 的应用场景
HDFS 广泛应用于需要批处理和分析大规模数据的场景,例如:
大数据分析:HDFS 为数据科学家提供海量数据存储,以便进行数据挖掘和分析。
日志存储和分析:很多企业会使用 HDFS 来存储用户操作日志等数据,用于分析用户行为。
备份和归档:HDFS 用于保存大数据量的备份和归档,以保证数据的长期存储。
创建文件夹
在h121
节点上进行操作:
上传文件
下载文件

WordCount
创建文件夹
创建文件
在本地创建一个文件
写入如下的内容(当然你也可以是自己的内容)
上传文件
观察文件情况

可以看到文件已经上传了

运行实例
注意下面的指令,不要写错了:
此时运行之后,任务会被提交到给集群运行,需要耐心的等待一会儿。

查看结果
这里可以查看到此时的 HDFS 的结果:

我们点击查看 wcoutput
文件夹的内容:

命令查看
我们可以看到最终的计算结果,符合我们的预期:

版权声明: 本文为 InfoQ 作者【武子康】的原创文章。
原文链接:【http://xie.infoq.cn/article/cb5bfa640a91622ebb3969698】。文章转载请联系作者。
评论