您的位置:首页 > 运维架构 > Apache

Apache Hadoop 0.23 介绍

2012-01-13 05:50 281 查看
Hadoop 1.0 (0.20.2×) 终于在27 December, 2011正式发布了【1】。下面是一个Hadoop的简单历史【2】:



这个也是目前最稳定的版本。新的版本也在开发之中,那就是0.23或者2.0吧!在新版本中引入了很多新的特性,其中着重说一个:

HDFS Federation
NextGen MapReduce

HDFS Federation

目前的HDFS包含两层:



命名空间 (Namespace)

Consists of directories, files and blocks
It supports all the namespace related file system operations such as create, delete, modify and list files and directories.

块存储服务 (Block Storage Service) has two parts

Block Management (which is done in Namenode)

Provides datanode cluster membership by handling registrations, and periodic heart beats.
Processes block reports and maintains location of blocks.
Supports block related operations such as create, delete, modify and get block location.
Manages replica placement and replication of a block for under replicated blocks and deletes blocks that are over replicated.

Storage - is provided by datanodes by storing blocks on the local file system and allows read/write access.

可以简单的理解为“Namenode”就是一个hadoop系统里面的文件系统,操作的基本对象就是一个block,一般为64M或者128M。“Datanode”提供抽象block到操作系统(比如Linux)的文件系统映射。

这个设计的最大问题就是可以很容易的通过增加Datanode来水平拓展物理存储空间,但是却只能有一个Namenode。这个导致很明显的问题就是single point of failure很性能瓶颈。

新的设计试图解决了这个问题:



其实这个我们也可以想到,呵呵!这里引入了一个新概念:Block Pool。它是一个block的集合,显然里面的block可以来自不同的Datanode。每个pool独立运作,只属于一个Namenode。

Apache Hadoop NextGen MapReduce (YARN)

新的版本叫做MapReduce 2.0 (MRv2) 或者 YARN。MRv2的核心是将JonTracker里面的两个主要功能,资源管理(resource management)和任务调度/监控(job scheduling/monitoring),分解为两个独立的守护进程(daemon):global ResourceManager (RM)
和 per-application ApplicationMaster (AM)。一个程序可以是以前的Map-Reduce任务或者是一个任务的有向无环图(Directed Acyclic Graph)。



ResourceManager有两个主要构成:Scheduler和ApplicationsManager。Scheduler负责分配资源,它只是一个纯粹的调度者,并不会监控任务的执行。资源调度基于Container,它是memory, cpu, disk, network等的抽象,目前只支持memory。ApplicationsManager负责接收任务提交,协商第一个Container以执行程序的ApplicationMaster和重启失败的ApplicationMaster container。

NodeManager是每台机器上的代理(per-machine framework agent),对container负责,提供对资源使用的监控和向ResourceManager/Scheduler提供汇报。

每个程序的ApplicationMaster负责协商资源,监控程序的执行和进度。

上图我们可以看到一个ApplicationMaster其实可以使用其它机器上的资源(Container),这个对于就可以提供更高的资源利用和并发执行了。

题外话,最后介绍一个hadoop 1.0里面的新的特性:WebHDFS。这个就是HDFS的HTTP REST API。这个的好处显而易见,无需hadoop环境就可以直接访问HDFS。是不是很容易实现跨data center的数据访问呢?

参考:

【1】http://hadoop.apache.org/common/docs/r1.0.0/releasenotes.html

【2】http://hortonworks.com/apache-hadoop-is-here/

【3】http://hadoop.apache.org/common/docs/r0.23.0/index.html

【4】http://hadoop.apache.org/common/docs/r1.0.0/webhdfs.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: