Hadoop大数据平台实战 —— 基础概念

Hadoop 起源于 Google 的三大论文:

  • GFS:Google 的分布式文件系统 Google File System
  • MapReduce:Google 的 MapReduce 开源分布式并行计算框架
  • BigTable:一个大型的分布式数据库

上述三大论文的演变关系:

  • GFS —— -> HDFS
  • Google MapReduce —— -> Hadoop MapReduce
  • BigTable —— -> HBase

Hadoop 名称的由来:

Hadoop 之父 Doug Cutting 儿子毛绒玩具象命名的。

Hadoop主流版本:

  • 原 生 版 本 : A p a c h e 基 金 会 h a d o o p \color{#FF0000}{原生版本:Apache 基金会 hadoop} Apachehadoop
  • Cloudera版本(Cloudera‘s Distribution Including Apache Hadoop,简称"CDH")
  • Hortonworks版本(Hortonworks Data Platform,简称"HDP")
* Apache Hadoop CDH HDP
管理工具 手动人工 Cloudera Manager Ambari
收费情况 开源 社区版免费,企业版收费 免费

实际生产过程中是根据原生版本衍生自己封装的版本,这里我们只是为了学习Hadoop,直接使用原生版本即可

Hadoop框架最核心设计:HDFS 和 MapReduce

  • HDFS 为海量的数据提供了存储
  • MapReduce 为海量的数据提供了计算

Hadoop框架的四个模块:

  • Hadoop Common:这些是其他 Hadoop 模块所需的 Java 库和实用程序。这些库提供文件系统和操作系统级抽象,并包含启动 Hadoop 所需的 Java 文件和脚本
  • Hadoop YARN:这是一个用于作业调度和集群资源管理的框架
  • Hadoop Distributed File System(HDFS):分布式文件系统,提供对应用程序数据的高吞吐量访问
  • Hadoop MapReduce:基于 YARN 的用于并行处理大数据集的系统

Hadoop 的优点:

  • Hadoop是一个能够对大量数据进行分布式处理的软件框架
  • Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理
  • Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理
  • Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度
  • Hadoop 是可伸缩的,能够处理 PB 级数据
  • Hadoop 依赖于社区服务,因此它的成本比较低,任何人都可以使用
  • Hadoop是一个能够让用户轻松架构和使用的分布式计算平台
  • 主要优点为:
    1. 高可靠性 Hadoop按位存储和处理数据的能力值得人们信赖
    2. 高扩展性 Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中
    3. 高效性 Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快
    4. 高容错性 Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配
    5. 低成本 与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低

Hadoop 核心架构
Hadoop大数据平台实战 —— 基础概念_第1张图片

  • HDFS
    对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。
    但是 HDFS 的架构是基于一组特定的节点构建的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。HDFS 内部的所有通信都基于标准的 TCP/IP 协议
  • NameNode
    NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问,NameNode 决定是否将文件映射到 DataNode 上的复制块上。
    对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。
    实际的 I/O事务并没有经过 NameNode,只有表示 DataNode 和块的文件映射的元数据经过 NameNode。
    当外部客户机发送请求要求创建文件时,NameNode 会以块标识和该块的第一个副本的 DataNode IP 地址作为响应。
    这个 NameNode 还会通知其他将要接收该块的副本的 DataNode。
    NameNode 在一个称为 FsImage 的文件中存储所有关于文件系统名称空间的信息。
    这个文件和一个包含所有事务的记录文件(这里是 EditLog)将存储在 NameNode 的本地文件系统上。
    FsImage 和 EditLog 文件也需要复制副本,以防文件损坏或 NameNode 系统丢失。
  • DataNode
    DataNode 也是一个通常在 HDFS实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNodeDataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。DataNode 响应来自 HDFS 客户机的读写请求。它们还响应来自 NameNode 的创建、删除和复制块的命令。NameNode 依赖来自每个 DataNode 的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode 可以根据这个报告验证块映射和其他文件系统元数据。如果 DataNode 不能发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块
  • 文件操作
    DFS 并不是一个万能的文件系统。它的主要目的是支持以流的形式访问写入的大型文件。
    如果客户机想将文件写到 HDFS 上,首先需要将该文件缓存到本地的临时存储。
    如果缓存的数据大于所需的 HDFS 块大小,创建文件的请求将发送给 NameNode。NameNode 将以 DataNode 标识和目标块响应客户机。
    同时也通知将要保存文件块副本的 DataNode。
    当客户机开始将临时文件发送给第一个 DataNode 时,将立即通过管道方式将块内容转发给副本 DataNode。
    客户机也负责创建保存在相同 HDFS名称空间中的校验和(checksum)文件。
    在最后的文件块发送之后,NameNode 将文件创建提交到它的持久化元数据存储(在 EditLog 和 FsImage 文件)
  • Linux 集群
    Hadoop 框架可在单一的 Linux 平台上使用(开发和调试时),官方提供MiniCluster作为单元测试使用,
    不过使用存放在机架上的商业服务器才能发挥它的力量。这些机架组成一个 Hadoop 集群。
    它通过集群拓扑知识决定如何在整个集群中分配作业和文件。
    Hadoop 假定节点可能失败,因此采用本机方法处理单个计算机甚至所有机架的失败

Hadoop应用场景:

  • 在线旅游
  • 移动数据
  • 电子商务
  • 能源开采与节能
  • 基础架构管理
  • 图像处理
  • 诈骗检测
  • IT安全
  • 医疗保健

大数据的生态体系(开发 + 运维)
Hadoop大数据平台实战 —— 基础概念_第2张图片
HDFS 工作原理
Hadoop大数据平台实战 —— 基础概念_第3张图片

你可能感兴趣的:(运维企业实战)