Hadoop生态体系

一、大数据应用的计算模式

  1. 批处理计算:针对大规模数据的批量处理,MapReduce、Spark
  2. 流计算:针对流数据的实时计算处理,Spark、Storm、Flink、Flume、Dstream
  3. 图计算:针对大规模图结构数据的处理,GraphX、Gelly 、Garph、PowerGraph
  4. 查询分析计算:大规模数据的存储和查询分析,Hive、Impala、 Dremel、Cassandra 

二、大数据组件:

1. HDFS

  • HDFS是Hadoop体系中数据存储管理的基础 ,它是一个高度容错的系统,能检测和应对硬件故障,可在低成本的通用硬件上运行。
  • HDFS简化了文件的一致性模型 ,通过流式数据访问 ,提供高吞吐量数据访问能力 ,适合带有大型数据集的应用程序。
  • HDFS提供了一次写入 、多次读取的机制,数据以块的形式分布在集群的不同物理机上。
  •  HDFS的架构基于一组特定的节点构建,这是由它自身的特点决定的。
  • HDFS的节点NameNode ,在HDFS内部提供元数据服务 。若干个DataNode为HDFS提供存储块。

2. MapReduce

  •  MapReduce是一种分布式计算框架,用于大数据计算。
  •  它屏蔽了分布式计算框架的细节,将计算抽象成Map和Reduce两部分。

3. HBase

  • HBase是一个面向列的 、针对结构化数据的可伸缩 、高可靠 、高性能 、分布式数据库。   
  • HBase采用了BigTable的数据模型:增强的稀疏排序映射表(key-value)。

4. Pig

  • Pig简化了Hadoop常见的工作任务,可加载数据 、转换数据以及存储最终结果。

5. Sqoop

  •  主要用于在传统数据库和Hadoop之间传输数据 。它可以将关系数据库(如MySQL 、Oracle、Postgres等)中的数据导入Hadoop的HDFS中,也可以将HDFS中的数据导入关系数据库中。
  • Sqoop利用数据库技术描述数据架构,并充分利用了MapReduce的并行化和容错性。

6. Flume

  • 将数据从产生 、传输 、处理并最终写入目标路径的过程抽象为数据流。

7. Mahout

  • Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现, 旨在帮助开发者更加方便 、快捷地创建智能应用程序。
  • Mahout现在已经包含聚类 、分类 、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘算法。

8. Oozie

  • Oozie具有可扩展的工作体系,集成于Hadoop的堆栈,用于协调多个MapReduce作业的执行。
  • 它能够管理一个复杂的系统,使其基于外部事件来执行。

9. YARN

  • YARN是一种新的Hadoop资源管理器 。它是一个通用资源管理系统 ,可为上层应用提供统一的资源管理和调度。

10. Mesos

  • Mesos是一个资源统一管理和调度的平台, 同样支持MapReduce 、Streaming等多种运算框架。
  • Mesos作为数据中心的内核 ,其设计原则是分离资源分配和任务调度 ,为大量不同类型的负载提供可靠服务。

11. Tachyon

  • Tachyon是以内存为中心的分布式文件系统,拥有高性能和容错能力 ,并具有类Java的文件API、插件式的底层文件系统 、兼容Hadoop 、MapReduce和Apache Spark等特点,能够为集群框架    (如Spark 、MapReduce)提供可靠的内存级速度的文件共享服务。
  • Tachyon充分使用内存和文件对象之间的谱系(lineage)信息, 因此速度很快。

12. Tez

  • 核心思想是将Map和Reduce两个操作进一步拆分, 即Map被拆分成Input 、Processor 、Sort、Merge和Output等, Reduce被拆分成Input 、Shuffle 、Sort 、Merge 、Processor和Output等。拆分后的元操作可以任意灵活组合,产生新的操作 。这些操作经过一些控制程序组装后 ,可形成一个大的DAG作业。

13. Spark

  • Spark提供了一个更快 、更通用的数据处理平台。

14. Giraph

  • Giraph是一个可伸缩的分布式迭代图处理系统。

15. MLlib

  • MLlib是一个机器学习库,提供了各种各样的算法,这些算法在集群上针对分类 、回归 、聚类、协同过滤等。
  • MLlib是Spark对常用的机器学习算法的实现库, 同时包括相关的测试和数据生成器。

16. Spark Streaming

  • Spark Streaming支持对流数据的实时处理 ,以“微批 ”的方式对实时数据进行计算。
  • 它是构建在Spark上处理Stream数据的框架 ,基本原理是将Stream数据分成小的片段, 以类似批量处理(Batch)的方式来处理每个片段数据。

17. Spark SQL

  • Spark SQL是Spark中用来处理结构化数据的一个模块 ,它提供了一个称为DataFrame的编程抽象,并且可以充当分布式SQL查询引擎。
  • 它将数据的计算任务通过SQL的形式转换成了RDD的计算 ,类似于Hive通过SQL的形式将数据的计算任务转换成了MapReduce。

18. Kafka

  • 主要用于处理活跃的流式数据。

19. Phoenix

  • Phoenix是HBase的SQL驱动。

20. Kylin+Druid

  • Kylin是一个开源的分布式分析引擎, 它提供了 Hadoop之上的SQL查询接口和多维分析(如OLAP)能力以支持大规模数据 ,能够处理TB乃至PB级别的分析任务 ,能够在亚秒级查询巨大 的Hive表,并支持高并发。

21. Superset

  • 能快速创建可交互的 、形象直观的数据集合 ,有丰富的可视化方法来分析数据 ,具有灵活的扩展能力,与Druid深度结合,可快速地分析大数据。

22. Storm

  • Storm是一个分布式实时大数据处理系统 ,用于在容错和水平可扩展方法中处理大量数据 。它具有一个流数据框架,且有较高的摄取率。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值