Hadoop生态系统以及版本衍化

转:https://blog.csdn.net/yan_qinglong/article/details/11618767

Hadoop生态系统以及版本衍化
hadoop生态系统特点
    1、源代码开源(免费)

    2、社区活跃、参与者众多

    3、涉及分布式存储和计算的方方面面

    4、已得到企业界验证

Hadoop与云计算
    一般认为,云计算由三层构成:IAAS、PAAS和ASSA

     IAAS:基础设施即服务,典型实现OpenStack、Cloudstack

     PAAS:平台即服务,典型实现有Google AppEngine,Apache Hadoop

     SAAS:软件即服务,典型实现有Google Apps

HDFS的架构
    HDFS主要由NameNode(主)、 DataNode(从)、HDFS Client、Secondary NameNode构成。

    NameNode主要功能:

            1、Master

            2、管理HDFS的名称空间

            3、管理数据块映射信息

            4、配置副本策略

            5、处理客户端读写请求

    DataNode主要功能:

            1、Slave

            2、存储实际的数据块

            3、执行数据块的读/写

     Client主要功能:

             1、文件切分

             2、与NameNode交互,获取文件位置信息

             3、与DataNode交互,读取或者写入数据

             4、管理HDFS

             5、访问HDFS

       Secondary NameNode主要功能:

             1、并非NameNode的热备

             2、辅助NameNode,分担其工作量

             3、定期合并fsimage和fsedits,推送给NameNode

             4、在紧急情况下,可辅助恢复NameNode

       Block(数据块):

          文件被切分成固定大小的数据块(默认为64MB,可配置,默认情况下每个block有三个副本),为何数据块如此之大?主要是考虑提高吞吐量。让数据传输时间超过寻道时间。

MapReduce(分布式计算框架)
        特点:

             1、易于编程

             2、良好的扩展性

             3、高容错性

             4、适合PB级以上海量数据的离线处理

       MapReduce主要由JobTracker(主)、TaskTracker(从)、Client组成。

       JobTracker主要功能:

               1、Master

               2、管理所有作业

               3、将作业分解成一系列任务

               4、将任务指派给TaskTracker

               5、作业/任务监控、错误处理等。

        TaskTracker主要功能:

               1、Slave

               2、运行Map Task和Reduce Task

               3、与JobTracker交互,执行命令,并汇报任务状态

          Map Task主要功能:

               1、Map引擎

               2、解析每条数据记录,传递给用户编写的map()

               3、将map()输出数据写入本地硬盘(如果是map-only作业,则直接写入HDFS)

          Reduce Task主要功能:

                1、Reduce引擎

                2、从Map Task上远程读取输入数据

                3、对数据排序

                4、将数据按照分组的传递给用户编写的reduce()    

Hive(基于Hadoop的数据仓库)
           1、Hive是由facebook开源,最初用于解决海量结构化的日志数据统计问题

           2、它是构建在Hadoop之上的数据仓库

           3、Hive定义了一种类SQL的查询语言HQL

           4、通常用于进行离线分析

           Hive系统包括元数据存储、驱动、查询编译器、执行引擎、服务器、客户端组件、可扩展接口部分组成。

PIG(基于Hadoop的数据流系统)
           1、Pig是有yahoo开源,设计懂事是提供基于MapReduce的ad-hoc(计算query时发生)数据分析工具

           2、构建在Hadoop之上的数据仓库

           3、定义了一种数据流语言-Pig Latin

           4、通常用于进行离线分析

Mahout(数据挖掘算法库)
          1、基于Hadoop的机器学习和数据挖掘分布式计算框架

          2、实现了三大类算法

                    推荐、聚类、分类

HBase(分布式数据库)
          特点:

              1、高可靠性

              2、高性能

              3、面向列

              4、良好的扩展性

Zookeeper(分布式协作服务)
               源自于Google的Chubby论文

              解决分布式环境下数据管理以下问题:

                     1、统一命名

                     2、状态同步

                     3、集群管理

                     4、配置同步

Sqoop(数据同步工具)
            连接Hadoop传统数据库之间的桥梁:

                   1、支持多种数据库,包括MySQL、DB2等数据块

                   2、插拔式,用户可根据需要支持新的数据库

                   3、本质是一个MapReduce程序,充分利用了MR分布式并行的特点和容错性

Flume(日志收集工具)
            Cloudera开源的日志收集系统:

                 1、分布式

                 2、高可靠性

                 3、高容错性

                 4、易于定制与扩展

 下一代Hadoop解决第一代Hadoop的问题
               HDFS:

                        1、NameNode单点故障

                        2、NameNode内存瓶颈

                MapReduce:

                        1、JobTracker单点故障

                        2、无法支持多种计算模型
————————————————
版权声明:本文为CSDN博主「剑邑龙泉」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yan_qinglong/article/details/11618767

猜你喜欢

转载自www.cnblogs.com/ceshi2016/p/12118313.html