Hadoop的HDFS以及YARN简介

本文介绍了Hadoop的分布式存储系统HDFS,包括其主要优缺点、功能模块如NameNode、SecondaryNameNode、DataNode等,以及读写流程。此外,还探讨了Hadoop2.0的高可用特性、ZooKeeper的角色和YARN的资源管理任务调度流程。

Hadoop的HDFS以及YARN简介

Hadoop分布式系统简介

  • Hadoop是分布式的系统架构,是Apache基金会顶级金牌项目

  • 来源:三大论文GFS、MapReduce、 Bigtable

  • 创始人:Doug cutting

Hadoop分布式系统重要部分

  • HDFS
  • YARN
  • MapReduce
  • Zookeeper
  • Hive
  • Hbase

HDFS(分布式存储系统)

  • 用途:解决大数据的存储问题

主要优缺点

  • 优点:
    • 分布式的特性
    • 适合大数据处理
    • 百万规模以上的文件数量
    • 适合批处理
    • 移动计算而非数据(MR),数据位置暴露给计算框架
    • 高可靠性,高容错性
  • 缺点
    • 低延迟高数据吞吐访问问题
    • 小文件读取占大量内存
    • 不支持文件修改

功能模块

数据存储单元(block)

文件被切分成固定大小的数据块block

默认数据块大小为128MB(Hadoop2.x)

数据大小不足一个block存成一个block

block为逻辑概

### HDFS的功能 Hadoop分布式文件系统(HDFS)是Hadoop的核心组件之一,设计用于存储大量的数据集,并且能够在廉价的硬件上运行。HDFS提供了高吞吐量的数据访问,适合一次写入、多次读取的场景。它将大文件分割成多个块,并将这些块分布存储在集群中的多个节点上,每个块都会在多个节点上复制以保证数据的可靠性和容错性[^1]。 ### YARN的功能 Yet Another Resource Negotiator (YARN) 是Hadoop的资源管理层,负责管理和调度计算资源。YARN使得Hadoop能够支持多种计算框架,不仅仅是MapReduce。YARN通过将资源管理和作业调度/监控的功能分开,提高了系统的灵活性和效率。它允许多种不同的分布式计算模型共享同一个数据集,而无需将数据移动到不同的系统中[^2]。 ### HDFSYARN的区别 HDFSYARNHadoop生态系统中扮演着不同的角色。HDFS是数据存储层,专注于数据的存储和管理,而YARN是资源管理层,负责分配和管理集群中的计算资源。HDFS处理的是静态数据,即存储在集群中的数据,而YARN处理的是动态数据,即运行在集群上的计算任务所需的资源[^3]。 ### HDFSYARN的关系 尽管HDFSYARN在功能上有明显的区别,但它们紧密协作以支持Hadoop的高效运行。HDFSYARN提供了存储资源信息和应用程序特定数据的基础。YARN则利用HDFS来存储应用程序的输入输出数据,并且在执行计算任务时,YARN会向HDFS请求数据块的位置信息,以便将计算任务调度到数据所在的节点上,从而实现数据本地化处理,减少网络传输开销[^3]。 ### Hadoop生态系统中的HDFSYARN集成 在Hadoop生态系统中,HDFSYARN的集成是通过Hadoop的架构设计实现的。YARN通过与HDFS的交互来获取数据的位置信息,并据此进行任务调度。这种设计不仅提高了数据处理的效率,还增强了系统的可扩展性,使得Hadoop能够轻松地适应不断增长的数据量和多样化的计算需求[^2]。 ### Hadoop生态系统中的HDFSYARN协同工作示例 以下是一个简单的MapReduce程序示例,展示了HDFSYARN是如何协同工作的: ```python # 假设我们有一个简单的MapReduce程序,用于统计文本中单词的出现次数 # Map阶段 def map_function(document): # 将文档分割成单词 words = document.split() # 为每个单词生成一个键值对 for word in words: yield (word, 1) # Reduce阶段 def reduce_function(word, counts): # 对每个单词的计数进行求和 yield (word, sum(counts)) # 在实际的Hadoop环境中,这些函数会被提交给YARN进行分布式执行, # YARN会根据HDFS上的数据位置来调度任务到合适的节点上。 ``` 在这个例子中,MapReduce作业会利用HDFS来存储输入和输出数据,而YARN则负责调度和管理执行Map和Reduce任务所需的计算资源。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值