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
分享到:
相关推荐
hadoop0.23,绿色包,免安装!
Spring Data for Apache Hadoop API。 Spring Data for Apache Hadoop 开发文档
SQL for Apache Hadoop, SQL for Apache Hadoop, SQL for Apache Hadoop, SQL for Apache Hadoop
Pro apache hadoop 原版书
Apache Hadoop YARN.pdf完整电子版
带图带说明:Hadoop简介及Apache Hadoop三种搭建方式
Apache Hadoop is a widely used distributed data platform. It enables large datasets to be efficiently processed instead of using one large computer to store and process the data. This book will get ...
Pro Apache Hadoop, 2nd Edition是最新介绍Hadoop2.x的资料
apache hadoop v2.7.0官方最新版
Moving beyond MapReduce and Batch Processing with Apache Hadoop™ 2
Apache Hadoop YARN: Moving beyond MapReduce and Batch Processing with Apache Hadoop 2 完整版哦,绝对清晰,不是扫描的mobi格式电子书,请使用电子书库calibre (http://calibre-ebook.com/download) 打开。
Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。但是这里的 Hadoop 是广义...
Apache Hadoop (hadoop-3.3.3.tar.gz)项目为可靠、可扩展的分布式计算开发开源软件。 Apache Hadoop 软件库是一个框架,它允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千...
Apache Hadoop十周岁:展望前方.pdf
Apache Hadoop (hadoop-3.2.3.tar.gz)项目为可靠、可扩展的分布式计算开发开源软件。 Apache Hadoop 软件库是一个框架,它允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千...
Java-org.apache.hadoop,Java-org.apache.hadoop,Java-org.apache.hadoop
Apache Hadoop YARN is the modern distributed operating system for big data applications. It morphed the Hadoop compute layer to be a common resource-management platform that can host a wide variety of...
Apache Hadoop (hadoop-3.2.3-src.tar.gz)项目为可靠、可扩展的分布式计算开发开源软件。 Apache Hadoop 软件库是一个框架,它允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到...
Apache Hadoop (hadoop-3.3.3-src.tar.gz)项目为可靠、可扩展的分布式计算开发开源软件。 Apache Hadoop 软件库是一个框架,它允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到...