码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop的项目结构

时间:2015-12-18 22:45:16      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:

  1.Common。是为Hadoop其他子项目提供支持的常用工具。它主要包括FileSystem、RPC和串行化库,并且为运行在云计算环境平台上的软件开发提供所需的API。

  2.Avro。是用于数据序列化的系统。提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持久性数据的文件集、远程调用RPC的功能和简单的动态语言集成功能。

                  注意,Avro系统依赖于模式(Schema)。数据的读和写是在模式之下完成的。

     3.MapReduce。是编程框架。从其自身的命名特点就可以看出,MapReduce是由两个阶段组成:Map和Reduce。用户只需编写map()和reduce()两个函数,即可完成简单的分布式程序的设计。

  map()函数以key/value对作为输入,产生另外一系列key/value对作为中间输出写入本地磁盘。MapReduce框架会自动将这些中间数据按照key值进行聚集,且key值相同(用户可设定聚集策略,默认情况下是对key值进行哈希取模)的数据被统一交给reduce()函数处理

  Hadoop将输入数据切分成若干个输入分片(input split,简称split),并将每个split交给一个Map Task处理;Map Task不断地从对应的split中解析出一个个key/value,并调用map()函数处理,处理完之后根据Reduce Task个数将结果分成若干个分片(partition)写到本地磁盘;同时,每个Reduce Task从每个Map Task上读取属于自己的那个partition,然后使用基于排序的方法将key相同的数据聚集在一起,调用reduce()函数处理,并将结果输出到文件中。

  InputFormat将指定输入文件格式。将输入数据切分成若干个split,且将每个split中的数据解析成一个个map()函数要求的key/value对。

      Partitioner确定map()函数产生的每个key/value对发给哪个Reduce Task函数处理。

      OutputFormat指定输出格式,即每个key/value对以何种形式保存到输出文件中。

  reduce()函数以key及对应的value列表作为输入,经合并Key相同的value值后,产生另外一系列key/value对作为最终输出写入HDFS

    4.HDFS。是分布式文件系统。采用了主/从(Master/Slave)结构模型。一个HDFS集群是由一个NameNode 和若干个DataNode组成的。

    5.Chukwa。是开源的数据收集系统,用于监控和分析大型分布式系统的数据。是在Hadoop的MapReduce和HDFS之上搭建的。Chukwa是通过HDFS来存储数据,并依赖MapReduce任务处理数据。

  6.Hive。是数据仓库工具。

  7.HBase。是分布式数据库。

    8.Pig。是一个对大型数据集进行分析、评估的平台。

    9.ZooKeeper。是一个为分布式应用所设计的开源协调服务。

Hadoop的项目结构

标签:

原文地址:http://www.cnblogs.com/zlslch/p/5058265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!