Hadoop生态系统架构

Hadoop生态系统架构

学习的第二天,在能够运行hadoop wordcount示例后,开始深入了解hadoop的生态系统架构。

hadoop发展历史

大概了解一下hadoop的发展历史:
Hadoop由 Apache Software Foundation 于 2005 年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由 Google Lab 开发的 Map/Reduce 和 Google File System(GFS) 的启发。
2006 年 3 月份,Map/Reduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中。Hadoop 是最受欢迎的在 Internet 上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题。例如,如果您要 grep 一个 10TB 的巨型文件,会出现什么情况?在传统的系统上,这将需要很长的时间。但是 Hadoop 在设计时就考虑到这些问题,采用并行执行机制,因此能大大提高效率。
Hadoop Common:在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common
- HDFS:Hadoop分布式文件系统(Distributed File System)-HDFS(Hadoop Distributed File System)
- MapReduce:并行计算框架,0.20前使用org.apache.hadoop.mapred旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新API
- Apache HBase:分布式NoSQL列数据库,类似谷歌公司BigTable。
- Apache Hive:构建于hadoop之上的数据仓库,通过一种类SQL语言HiveQL为用户提供数据的归纳、查询和分析等功能。Hive最初由Facebook贡献。
- Apache Mahout:机器学习算法软件包。
- Apache Sqoop:结构化数据(如关系数据库)与Apache Hadoop之间的数据转换工具。
- Apache ZooKeeper:分布式锁设施,提供类似Google Chubby的功能,由Facebook贡献。
- Apache Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制

Hadoop1.0与Hadoop2.0的差异

Hadoop1.0与Hadoop2.0比较图
这里写图片描述
从Hadoop整体架构上来看Hadoop1.0即第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中HDFS由一个NameNode和多个DateNode组成,MapReduce由一个JobTracker和多个TaskTracker组成。
Hadoop2.0即第二代Hadoop为克服Hadoop1.0中的不足:针对Hadoop1.0单NameNode制约HDFS的扩展性问题,提出HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,同时彻底解决了NameNode单点故障问题;针对Hadoop1.0中的MapReduce在扩展性和多框架支持等方面的不足,它将JobTracker中的资源管理和作业控制分开,分别由ResourceManager(负责所有应用程序的资源分配)和ApplicationMaster(负责管理一个应用程序)实现,即引入了资源管理框架Yarn。同时Yarn作为Hadoop2.0中的资源管理系统,它是一个通用的资源管理模块,可为各类应用程序进行资源管理和调度,不仅限于MapReduce一种框架,也可以为其他框架使用,如Tez、Spark、Storm等.
Hadoop1.0架构图
这里写图片描述
Hadoop2.0架构图
这里写图片描述
hdfs架构图
这里写图片描述
hdfs是一个分布式文件系统。它以文件分块的形式实现对大文件超大文件(G到T字节)安全的、可
靠的以及可快速(高吞吐量)访问的分布式存储。hdfs采用master/slave架构。在hdfs系统中包含一个Namenode节点(管理文件系统的命名空间和监测客户端的文件访问请求)和多个Datanode节点(管理其运行机器上的数据存储)。Namenode节点负责管理存储hdfs中文件的元信息和文件块与Datanode之间的映射关系,并不负责存储文件的内容;Datanode负责管理和存储在他自己节点上的文件块内容。从hdfs系统的内部架构来看,一个文件被分成多个文件块存储在Datanode节点集上;而Namenode负责执行文件系统的操作(如文件打开,关闭,重命名等),同时确定和维护文件命名空间到各个数据块之间的映射关系。而DataNodes负责来自客户端的文件读写(即IO操作);同时DataNodes也负责文件块的创建,删除和执行来自NameNode的文件块复制命令.

  • NameNode
    管理者文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。管理这些信息的文件有两个,分别是Namespace 镜像文件(Namespace image)和操作日志文件(edit log),这些信息被Cache在RAM中,当然,这两个文件也会被持久化存储在本地硬盘。Namenode记录着每个文件中各个块所在的数据节点的位置信息,但是他并不持久化存储这些信息,因为这些信息会在系统启动时从数据节点重建。

  • Secondary NameNode
    从名称上很给人的感觉像是NameNodede备份,但是实际上完全不是。可以理解为辅助名称节点,或者检查节点,监控HDFS状态的辅助后台程序。就想NameNode一样,每个集群都有一个SecondaryNameNode,并且部署在一个单独的服务器上。Secondary NameNode不同于NameNode,它不接受或者记录任何实时的数据变化,但是,它会与NameNode进行通信,以便定期地保存HDFS元数据的快照。由于NameNode是单点的,通过Secondary NameNode的快照功能,可以将NameNode的宕机时间和数据损失降低到最小。同时,如果NameNode发生问题,Secondary NameNode可以及时地作为备用NameNode使用。

  • DataNode
    Datanode是文件系统的工作节点,他们根据客户端或者是NameNode的调度存储和检索数据,并且定期向NameNode发送他们所存储的块(block)的列表。

Yarn结构图
Yarn是hadoop2.0之后新加组件
这里写图片描述
Yarn的应用场景与原理

MapReduce
MapReduce的原理与架构
Hive

HBase

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值