Hadoop理论

前言

Hadoop组件

  1. HDFS: Hadoop 分布式文件系统是一种文件存储系统,用于存储大数据,具有商用硬件集群或具有流式访问模式的更便宜的硬件。它使数据可以存储在集群中的多个节点上,从而确保数据的安全性和容错性
  2. Map Reduce:曾经存储在 HDFS 中的数据也需要进行处理。发送查询以处理 HDFS 中的数据集。现在,Hadoop 识别这些数据的存储位置,这称为映射。现在查询被分解成多个部分,所有这些多个部分的结果被组合起来,整体结果被发送回给用户。这称为减少过程。因此, HDFS 用于存储数据,Map Reduce 用于计算数据
  3. YARN: YARN 代表资源调度者。是 Hadoop 的专用操作系统,管理集群的资源,也作为 Hadoop 中作业调度的框架。调度的各种类型有先到先服务、公平共享调度器和容量调度器等。在 YARN 中默认设置了先到先服务调度。在Hadoop1中没有YARN组件

Hadoop版本

  1. Hadoop 1:Hadoop 的第一个也是最基本的版本。它包括 Hadoop Common(Hadoop通用组件,包含了其他hadoop模块要用到的库文件和工具)、HDFS (分布式文件系统,运行于通用硬件上的分布式文件系统,高吞吐,高可靠) 和 MapReduce(分布式计算框架,用于处理超大数据集计算的MapReduce编程模型的实现)

  2. Hadoop 2: Hadoop 1 和 Hadoop 2 之间的唯一区别是 Hadoop 2 还包含 YARN(资源管理组件,用于管理集群中的计算资源并在这些资源上调度用户应用)。YARN 通过其两个守护进程(即作业跟踪和进度监控)帮助资源管理和任务调度

  3. Hadoop 3:这是最新版本的 Hadoop。除了前两个版本的优点之外,Hadoop 3 还有一个最重要的优点。它通过拥有多个名称节点解决了单点故障的问题。其他各种优势,如纠删码、使用 GPU 硬件和 Docker,使其优于早期版本的 Hadoop

Hadoop特性和特点

Apache Hadoop是最流行和最强大的大数据工具,它提供了世界上最可靠的存储层——HDFS(Hadoop分布式文件系统)、一个批处理引擎——MapReduce和一个像YARN这样的资源管理层。开源 ——Apache Hadoop 是一个开源项目。这意味着它的代码可以根据业务需求进行修改。

  • 分布式处理—数据存储在 HDFS 中以分布式方式跨集群维护,数据在节点集群上并行处理
  • 容错—默认情况下,每个块的三个副本存储在 Hadoop 中的整个集群中,并且仅在需要时进行更改。Hadoop 的容错性可以在任何一个节点出现故障的情况下进行检查,该节点上的数据可以很容易地从其他节点恢复。特定节点或任务的故障由框架自动恢复
  • 可靠性—由于集群中数据的复制,数据可以可靠地存储在机器集群上,尽管机器发生故障。即使你的机器出现故障,你的数据也将被可靠地存储
  • 高可用性– 即使由于多个数据副本而发生硬件故障,数据也可用且可访问。如果发生任何事件,例如您的机器或少数硬件崩溃,则将从其他路径访问数据
  • 可扩展性—Hadoop 具有高度可扩展性,并且可以以独特的方式轻松地将硬件添加到节点中。它还提供水平可扩展性,这意味着可以 在顶部添加新节点而无需停机
  • 经济– Hadoop 不是很昂贵,因为它运行在商品硬件集群上。我们不需要任何专门的机器。Hadoop 提供了巨大的成本降低,因为在这里添加更多节点非常容易。因此,如果需求增加,那么节点就会增加,无需任何停机时间,也无需任何预先计划
  • 易于使用—无需客户端处理分布式计算,框架处理所有事情。所以它很容易使用
  • 数据局部性—Hadoop 的工作原理是数据局部性原则,该原则指出数据计算的移动而不是数据向计算的移动。当客户端提交他的算法时,算法被移动到集群中的数据,而不是把数据带到算法提交的位置然后处理它

Hadoop的优缺点

优点

  • 能够存储大量数据
  • 高灵活性
  • 高计算能力
  • 任务是独立的
  • 线性缩放

缺点

  • Hadoop需要高内存和大存储来应用复制技术
  • Hadoop只支持任务分配,没有策略支持任务调度
  • 加载时间长

Hadoop工作流程

Hadoop 有助于执行大量处理,可以将多台计算机连接到单个 CPU,作为单一功能的分布式系统,并拥有一组特定的集群机器,并行读取数据集并提供中间和集成后得到想要的输出

  1. 数据最初分为文件和目录。 文件被划分为128M ~ 64M大小一致的块
  2. 然后这些文件分布在各个集群节点上,以便进一步处理数据
  3. 作业跟踪程序在单个节点上启动它的调度程序
  4. 一旦所有节点都完成了调度,就会返回输出。

Hadoop角色分析

NameNode
NameNode管理文件系统的命名空间

  1. 文件和目录的元数据:(运行时,元数据放内存)、文件的block副本个数、修改和访问的时间、访问权限、block大小以及组成文件的block信息列表
  2. 以两种方式在NameNode本地进行持久化:
    命名空间镜像文件(fsimage)和编辑日志(edits log)
  3. fsimage文件不记录每个block所在的DataNode信息,这些信息在每次系统启动的时候从DataNode重建。之后DataNode会周期性地通过心跳包向NameNode报告block信息。DataNode向NameNode注册的时候NameNode请求DataNode发送block列表信息。

SecondaryNameNode
问题:
  edits log会随着对文件系统的操作而无限制地增长,这对正在运行的NameNode而言没有任何影响,如果NameNode重启,则需要很长的时间执行edits log的记录以更新fsimage(元数据镜像文件)。在此期间,整个系统不可用,在系统启动期间,NameNode合并fsimage+edits log

解决方案就是运行SecondaryNameNode,它的作用就是为NameNode内存中的文件系统元数据生成检查点(checkpoint)。fsimage
DataNode

  1. 文件线性切割成块(Block)(按字节切割)
  2. Block分散存储在集群的DataNode节点中
  3. 单一文件Block大小一致,文件与文件可以不一致
  4. Block可以设置副本数,副本分散在不同节点中
      副本数不要超过DN节点数量
      承担计算
      容错
  5. 文件上传可以设置Block大小和副本数
  6. 已上传的文件Block副本数可以调整,大小不变
  7. 只支持一次写入多次读取,同一时刻只有一个写入者。对同一个文件,一个时刻只有一个写入者
  8. 可以append追加数据

Hadoop安全模式

工作流程

  1. 启动NameNode,NameNode加载fsimage到内存,对内存数据执行edits log日志中的事务操作
  2. 文件系统元数据内存镜像加载完毕,进行fsimage和edits log日志的合并,并创建新的fsimage文件和一个空的edits log日志文件
  3. NameNode等待DataNode上传block列表信息,直到副本数满足最小副本条件
  4. 当满足了最小副本条件,再过30秒,NameNode就会退出安全模式。最小副本条件指整个文件系统中有99.9%的block达到了最小副本数(默认值是1,可设置)

在NameNode安全模式(safemode)

  1. 对文件系统元数据进行只读操作
  2. 当文件的所有block信息具备的情况下,对文件进行只读操作
  3. 不允许进行文件修改(写,删除或重命名文件)

注意事项

  1. NameNode不会持久化block位置信息;DataNode保有各自存储的block列表信息。正常操作时,NameNode在内存中有一个blocks位置的映射信息(所有文件的所有文件块的位置映射信息)
  2. NameNode在安全模式,NameNode需要给DataNode时间来上传block列表信息到NameNode。如果NameNode不等待DataNode上传这些信息的话,则会在DataNode之间进行block的复制,而这在大多数情况下都是非必须的(因为只需要等待DataNode上传就行了),还会造成资源浪费
  3. 在安全模式NameNode不会要求DataNode复制或删除block
  4. 新格式化的HDFS不进入安全模式,因为DataNode压根就没有block

参考

本文参考

geeksforgeeks

本专栏为大数据学习总结专栏,如有问题还望指出,共同学习!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

week@eight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值