Hadoop生态圈

文章目录

    • 一、Hadoop
    • 三、Mapreduce
    • 四、 HBASE
    • 五、Zookeeper
    • 六、HIVE
    • 七、Pig
    • 八、Sqoop
    • 九、Flume
    • 十、Mahout
    • 十一、Oozie
    • 十二、Yarn
    • 十三、Mesos
    • 十四、Tachyon
    • 十五、Tez
    • 十六、Spark
    • 十七、Giraph
    • 十八、 GraphX
    • 十九、MLib
    • 二十、Streaming
    • 二十一、Kafka
    • 二十二、Phoenix
    • 二十三、ranger
    • 二十四、 knox
    • 二十五、falcon
    • 二十六、Ambari

一、Hadoop

  Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
下图是hadoop生态系统。
Hadoop生态圈_第1张图片
## 二、HDFS
  HDFS是Hadoop分布式文件系统,是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群不同物理机器上。

三、Mapreduce

  MapReduce是一种分布式计算框架,用以进行大数据量的计算。它屏蔽了分布式计算框架细节,将计算抽象成map(映射)和reduce(归约)两部分。

  • Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。 - Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。
      MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。

四、 HBASE

  HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。
  HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

五、Zookeeper

  zookeeper是一个分布式协作服务。解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。

六、HIVE

  Hive是一个数据仓库,定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。HQL用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。

七、Pig

  Pig是提供一种基于MapReduce的ad-hoc的数据分析工具,定义了一种数据流语言—Pig Latin,它是MapReduce编程的复杂性的抽象,Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Latin)。其编译器将Pig Latin翻译成MapReduce程序序列将脚本转换为MapReduce任务在Hadoop上执行。通常用于进行离线分析。

八、Sqoop

  Sqoop主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。Sqoop利用数据库技术描述数据架构,用于在关系数据库、数据仓库和Hadoop之间转移数据。

九、Flume

  Flume是日志收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统。当然也可以用于收集其他类型数据

十、Mahout

  Mahout是数据挖掘算法库,主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。

十一、Oozie

  Oozie是一个可扩展的工作体系,集成于Hadoop的堆栈,用于协调多个MapReduce作业的执行。它能够管理一个复杂的系统,基于外部事件来执行,外部事件包括数据的定时和数据的出现。
  Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。Oozie使用hPDL(一种XML流程定义语言)来描述这个图。

十二、Yarn

  YARN是分布式资源管理器,是下一代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。Yarn是下一代 Hadoop 计算平台,yarn是一个通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行。
  用于自己编写的框架作为客户端的一个lib,在运用提交作业时打包即可。该框架为提供了以下几个组件:

  • 资源管理:包括应用程序管理和机器资源管理
  • 资源双层调度
  • 容错性:各个组件均有考虑容错性
  • 扩展性:可扩展到上万个节点

十三、Mesos

  与yarn类似,Mesos也是一个资源统一管理和调度的平台,同样支持比如MR、steaming等多种运算框架。

十四、Tachyon

  Tachyon是以内存为中心的分布式文件系统,拥有高性能和容错能力,能够为集群框架(如Spark、MapReduce)提供可靠的内存级速度的文件共享服务。

十五、Tez

  Tez是支持DAG作业的计算框架,它直接源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,这样,这些分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的DAG作业。目前hive支持mr、tez计算模型,tez能完美二进制mr程序,提升运算性能。

十六、Spark

  Spark是内存DAG计算模型,提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍。

十七、Giraph

  Apache Giraph是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台。

十八、 GraphX

  Spark GraphX是一个分布式图计算框架项目,目前整合在spark运行框架中,为其提供BSP大规模并行图计算能力。

十九、MLib

  Spark MLlib是一个机器学习库,它提供了各种各样的算法,这些算法用来在集群上针对分类、回归、聚类、协同过滤等。

二十、Streaming

  Spark Streaming是一个流计算模型,支持对流数据的实时处理,以微批的方式对实时数据进行计算。

二十一、Kafka

  Kafka是是一个开源的消息队列,它主要用于处理活跃的流式数据。活跃的流式数据在web网站应用中非常常见,这些数据包括网站的pv、用户访问了什么内容,搜索了什么内容等。这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理。

二十二、Phoenix

  Phoenix 是HBase的SQL驱动,Phoenix 使得Hbase 支持通过JDBC的方式进行访问,并将你的SQL查询转换成Hbase的扫描和相应的动作。

二十三、ranger

  ranger是一个hadoop集群权限框架,提供操作、监控、管理复杂的数据权限,它提供一个集中的管理机制,管理基于yarn的hadoop生态圈的所有数据权限。

二十四、 knox

  knox是一个访问hadoop集群的restapi网关,它为所有rest访问提供了一个简单的访问接口点,能完成3A认证(Authentication,Authorization,Auditing)和SSO(单点登录)等

二十五、falcon

  Falcon 是一个面向Hadoop的、新的数据处理和管理平台,设计用于数据移动、数据管道协调、生命周期管理和数据发现。它使终端用户可以快速地将他们的数据及其相关的处理和管理任务“上载(onboard)”到Hadoop集群。

二十六、Ambari

  Ambari 的作用来说,就是创建、管理、监视 Hadoop 的集群,是为了让 Hadoop 以及相关的大数据软件更容易使用的一个web工具。

你可能感兴趣的:(大数据)