Hadoop项目架构及与其他项目的结合关系

来源:互联网 发布:注册环保工程师知乎 编辑:程序博客网 时间:2024/06/06 00:38

1.如今Hadoop已经发展成为包含很多项目的集合。虽然Hadoop的核心内容是MapReduce和Hadoop分布式文件系统,但与Hadoop相关的Common、Avro、Chukwa、Hive、HBase等子项目也是不可或缺的。它们提供了互补性服务或在核心层上提供了更高层的服务。Hadoop项目结构图如下所示:

   

 

2.各关联项目介绍

           1)Common

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

           2)Avro

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

           3)MapReduce

           MapReduce是一种编程模型,用于大规模数据集的并行计算。映射(Map)、化简(Reduce)的概念和它们的主要思想都是从函数式编程语言中借鉴而来。它极大地方便了编程人员——即使在不了解分布式并行编程的情况下,也可以将自己的程序运行在分布式系统上。MapReduce在执行时先指定一个Map(映射)函数,把输入键值对映射成一组新的键值对,经过一定处理后交给Reduce,Reduce对相同Key下的所有value进行处理后再输出键值对作为最终的结果。

           下图是MapReduce的任务处理流程图,他展示了MapReduce程序将输入划分到不同的Map上、再将Map的结果合并到Reduce、然后进行处理的输出结果。

            4)HDFS

            HDFS是一个分布式文件系统。

            5)Chukwa

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

             6)Hive

             Hive最早是由Facebook设计的,是一个建立在Hadoop基础之上的数据仓库,它提供了一系列的工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive提供的是一种结构化数据的机制,它支持类似于传统RDBMS中的SQL语言的查询语言,来帮助那些熟悉SQL的用户查询Hadoop中的数据,该查询语言成为Hive QL。

             7)HBase

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

             8)Pig

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

             9)ZooKeeper

             ZooKeeper是一个为分布式应用所设计的开源协调服务。它主要为用户提供同步、配置管理、分组和命名等服务,减轻分布式应用程序所承担的协调任务。

0 0
原创粉丝点击