Hadoop分布式平台概述

  Hadoop是Apache软件基金会旗下的开源分布式存储计算平台,它以HDFS(Hadoop Distributed File System)和MapReduce为核心,为用户提供了系统底层细节透明的分布式基础架构。其中,HDFS的高容错性、高伸缩性等优点允许用户将Hadoop部署在低廉的硬件上,形成分布式系统;MapReduce分布式编程模型允许用户在不了解分布式系统底层细节的情况下开发并行应用程序。用户可以利用Hadoop轻松的组织计算机资源,搭建自己的分布式计算平台,充分利用集群的存储能力与计算能力,从而完成海量数据的处理。

1、Hadoop的优势

  Hadoop是一个能让用户轻松架构和使用的分布式计算平台,用户可以轻松的在Hadoop上开发运行处理海量海量数据的应用程序,优点如下:

  • 高可靠性。Hadoop按位存储和处理数据的能力非常可靠;
  • 高扩展性。Hadoop是在可用的计算机集群见分配数据完成计算任务,这些集群可以方便的扩展到数以千计的节点中。
  • 高效性。Hadoop能够在节点之间动态的移动数据,以保证各个节点的动态平衡,因此,其处理速度非常快;
  • 高容错性。Hadoop能够自动保存数据的多份副本,并且能够自动将失败的任务重新分配。

2、Hadoop项目及其结构

  Hadoop的项目结构图如图1所示:

  

              图1 Hadoop项目结构图

  下面,对Hadoop中的各个项目进行介绍:

  1、Common:Common是为Hadoop其他子项目提供支持的常用工具,主要包括FileSystem、RPC和串行化库,它们为在廉价硬件上搭建云计算环境提供基本的服务,并为运行在该平台上的软件开发提供必需的API。

  2、Avro:Avro是用于序列化的系统。它提供了丰富的数据结构类型,快速可压缩的二进制数据格式、存储持久性数据的文件集、远程条用RPC的功能和简单的动态语言集成功能。其中,代码生成器既不需要读写数据文件,也不需要使用或实现RPC协议,他只是一个可选的对静态类型语言的实现。

  3、MapReduce:一种编程模型,用于大规模数据集的并行计算,其主要思想是map和reduce。MapReduce在执行时现指定一个map函数,把输入键值对映射成一种新的键值对,经过一定处理后交给Reduce,Reduce对相同key下的所有Value进行处理后再输出键值对作为最终的结果。

  4、HDFS:分布式文件系统。

  5、Chukwa:开源的数据收集系统,用于监控和分析大型分布式系统的数据。Chukwa是在Hadoop的HDFS和MapReduce框架上搭建的,它继承了Hadoop的可扩展性和健壮性。Chukwa通过HDFS来存储数据,并依赖MapReduce任务处理数据。Chukwa中也附带了灵活而强大的工具,用于显示、监视和分析数据结果,以便更好的利用所收集的数据。

  6、Hive:最早由Facebook设计,是一个建立在Hadoop基础之上的数据仓库,它提供了一些用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储的工具。Hive提供的是一种结构化数据的机制,它支持类似于传统的RDBMS中的SQL语言的查询语言,称为Hive QL。

  7、HBase:一个分布式的、面向列的开源数据库,类似于Google的Bigtable。

  8、Pig:一个对大型数据集进行分析、评估的平台,最突出的优势是它的结构能够经受住高度并行化的检验。Pig的底层由一个编译器组成,它在运行时会产生一些MapReduce程序序列。Pig的语言层由一种叫做Pig Latin的正文型语言组成。

  9、Zookeeper:一个为分布式应用设计的开源协调服务,它主要为用户提供同步、配置管理、分组和命名等服务、减轻分布式应用程序所承担的协调任务。其文件系统使用了我们所熟悉的目录树结构,Zookeeper用Java语言编写,支持Java和C两中编程语言。

 

  注:以上内容主要参考《Hadoop实战》(第二版),路嘉恒编著,机械工业出版社出版。

posted on 2015-03-21 10:35  文轩云阁  阅读(1615)  评论(0编辑  收藏  举报

导航