大数据、Java EE 学习资料请关注 B 站:https://space.bilibili.com/204792350

Hadoop 概述

概述

Hadoop 是分布式系统基础架构,HDFS 是其一个分布式文件系统(Hadoop Distributed File System, HDFS),HDFS 是 Apache Hadoop Core 项目的一部分。

Hadoop 组成

  • Hadoop 1.x
    • MapReduce:计算+资源调度
    • HDFS:数据存储
  • Hadoop 2.x
    • MapReduce:计算
    • Yarn:资源调度
    • HDFS:数据存储

在 Hadoop 1.x 的版本中 MapReduce 同时负责计算和资源调度,耦合性大,在 Hadoop 2.x 版本中,进行了解耦,MapReduce 只负责计算,Yarn 负责资源调度。这样的解耦,带来的是,Yarn 除了可以调用 MapReduce 的计算框架的资源,同时可以使用其它计算框架。

HDFS

架构概述,有几个角色:

  • NameNode:存储文件的元数据,如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的列表和块所在的DataNode等信息。
  • DataNode:在本地文件系统存储文件块数据,以及块数据的校验和
  • Secondary NameNode:用来监控 HDFS 状态的辅助后台程序,每个一段时间获取HDFS元数据的快照。

Yarn

  • ResourceManager
    • 处理来自 client 的请求
    • 监控 NodeManager
    • 启动或监控 ApplicitonMaster
    • 资源的分配和调度
  • NodeManager
    • 管理单个节点上的资源
    • 处理来自 ResourceManager 的命令
    • 处理来自 ApplictionMaster 的命令
  • ApplictionMaster
    • 负责数据的切分
    • 为应用程序申请资源,并分配给内部的任务
    • 任务的监控和容错
  • Container
    • Yarn 中的资源抽象,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等

任何来自 Client 请求都会经过 ResourceManager,然后由 ResourceManager 进行统一调度分配。来了请求会启动一个 ApplictionMaster,然后让 NodeManager 负责处理。而 NodeManager 会在自身节点上启动一个 Container 来处理这些任务,比如说 ApplicationMaster。

大数据生态体系

大数据生态体系

为什么需要分布式文件系统?

当今的信息时代中,人们可以获取的数据成指数倍地增长。单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式,在容量大小、容量增长速度、数据备份、数据安全等方面都不适用,对于数据量很大的应用系统来说尤其如此。分布式文件系统可以有效解决数据的存储和管理难题。

什么是分布式文件系统?

  • 指通过一套管理系统,能够将文件分散至不同的计算机进行存储,并通过规范的标准协议,方便客户机进行高效存取。
  • 分布式文件系统不是将数据放在一块磁盘上由上层操作系统来管理,而是存放在一个服务器集群上,由集群中的服务器通过各尽其责、通力合作的方式提供整个文件系统的服务。
  • 将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,这些节点组成一个文件系统网络。
  • 在使用分布式文件系统时,无须关心数据是存储在哪个节点上,或者是从哪个节点获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据即可。

分布式文件系统

分布式文件系统最重要的服务器包括:

  • 主控服务器(master/namenode)
  • 数据服务器(ChunkServer、DataNode)
  • 客户端服务器(Client)

特点

  • 可扩展性强
    • 基本上,所有的分布式文件系统都支持随时随地对数据服务器进行扩展,提升存储容量和访问带宽等。
  • 统一命名空间
    • 采用统一命名空间,分布式文件系统对于客户端是完全透明的,客户端看到的是统一的全局命名空间,用户操作起来就像是管理本地文件系统。通过元数据管理,文件以块的方式采用多副本模式进行存放。
  • 高性能
    • 由于一个文件被分成多份,保存在不同的数据服务器上,访问时,可以同时读取,性能会达到最优
  • 高可用性
    • 分布式文件系统必须具有高容错能力,即无论是客户端还是服务器出现故障,都不会影响整个系统的功能。为了做到这一点,单点失效是必须被避免的,例如使用资源冗余技术或者提供失效恢复服务。单个数据节点的故障并不会影响集群整体运转
  • 弹性存储
    • 可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行。弹性存储的最大挑战,是减小或增加资源时的数据震荡问题

技术名词

  • 数据震荡
# Hadoop   大数据  

评论

公众号:mumuser

企鹅群:932154986

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×