天天看点

hadoop入门指南(Hello Hadoop)Hadoop百度百科基础知识HDFSMapreduceHBASE(分布式列存数据库)zookeeperyarn分布式资源管理器

hadoop入门指南(Hello Hadoop)Hadoop百度百科基础知识HDFSMapreduceHBASE(分布式列存数据库)zookeeperyarn分布式资源管理器

Hadoop百度百科

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

Hadoop其实只是一种数据处理的框架,具体去处理什么问题,不是平台本身决定的。hadoop的出现时源于现实中存储和需要分析的数据的激增,最终要解决什么问题是看使用者要解决什么问题。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

基础知识

如今是大数据时代,而且学习大数据都会先学习Hadoop,因为它是目前世界上最流行的分布式数据处理框架。

Hadoop的核心是YARN,HDFS,Mapreduce,常用模块架构如下

hadoop入门指南(Hello Hadoop)Hadoop百度百科基础知识HDFSMapreduceHBASE(分布式列存数据库)zookeeperyarn分布式资源管理器

HDFS

HDFS是一个分布式文件系统,在HDFS上写文件的过程与我们平时使用的单机文件系统非常不同,从宏观上来看,在HDFS文件系统上创建并写一个文件,流程如下图(来自《Hadoop:The Definitive Guide》一书)所示:

hadoop入门指南(Hello Hadoop)Hadoop百度百科基础知识HDFSMapreduceHBASE(分布式列存数据库)zookeeperyarn分布式资源管理器

具体过程描述如下:

  1. Client调用DistributedFileSystem对象的create方法,创建一个文件输出流(FSDataOutputStream)对象
  2. 通过DistributedFileSystem对象与Hadoop集群的NameNode进行一次RPC远程调用,在HDFS的Namespace中创建一个文件条目(Entry),该条目没有任何的Block
  3. 通过FSDataOutputStream对象,向DataNode写入数据,数据首先被写入FSDataOutputStream对象内部的Buffer中,然后数据被分割成一个个Packet数据包
  4. 以Packet最小单位,基于Socket连接发送到按特定算法选择的HDFS集群中一组DataNode(正常是3个,可能大于等于1)中的一个节点上,在这组DataNode组成的Pipeline上依次传输Packet
  5. 这组DataNode组成的Pipeline反方向上,发送ack,最终由Pipeline中第一个DataNode节点将Pipeline ack发送给Client
  6. 完成向文件写入数据,Client在文件输出流(FSDataOutputStream)对象上调用close方法,关闭流
  7. 调用DistributedFileSystem对象的complete方法,通知NameNode文件写入成功

Mapreduce

源自于谷歌的MapReduce论文,用以进行大数据量的计算,它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分。

HBASE(分布式列存数据库)

源自谷歌的Bigtable论文,是一个建立在HDFS之上,面向列的针对结构化的数据可伸缩,高可靠,高性能分布式和面向列的动态模式数据库

zookeeper

解决分布式环境下数据管理问题,统一命名,状态同步,集群管理,配置同步等

yarn分布式资源管理器

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

hadoop入门指南(Hello Hadoop)Hadoop百度百科基础知识HDFSMapreduceHBASE(分布式列存数据库)zookeeperyarn分布式资源管理器

YARN最初是为了修复MapReduce实现里的明显不足,并对可伸缩性(支持一万个节点和二十万个内核的集群)、可靠性和集群利用率进行了提升。YARN实现这些需求的方式是,把Job Tracker的两个主要功能(资源管理和作业调度/监控)分成了两个独立的服务程序——全局的资源管理(RM)和针对每个应用的应用 Master(AM),这样一个应用要么是传统意义上的MapReduce任务,要么是任务的有向无环图(DAG)。

YARN从某种那个意义上来说应该算做是一个云操作系统,它负责集群的资源管理。在操作系统之上可以开发各类的应用程序,例如批处理MapReduce、流式作业Storm以及实时型服务Storm等。这些应用可以同时利用Hadoop集群的计算能力和丰富的数据存储模型,共享同一个Hadoop 集群和驻留在集群上的数据。此外,这些新的框架还可以利用YARN的资源管理器,提供新的应用管理器实现。

YARN的核心思想 将JobTracker和TaskTacker进行分离,它由下面几大构成组件:

a. 一个全局的资源管理器 ResourceManager

b. ResourceManager的每个节点代理 NodeManager

c. 表示每个应用的 ApplicationMaster

d. 每一个ApplicationMaster拥有多个Container在NodeManager上运行

hadoop入门指南(Hello Hadoop)Hadoop百度百科基础知识HDFSMapreduceHBASE(分布式列存数据库)zookeeperyarn分布式资源管理器

YARN的组成

继续阅读