精华内容
下载资源
问答
  • Hadoop生态圈

    2020-12-05 11:53:31
    Hadoop生态圈前言一、Hadoop生态HadoopHadoop生态圈二、生态圈模块HDFSMapReduceYarnHiveZookeeperHbaseSqoop 前言         截止写这边文章前,已经学习了hadoop、hive、...


    前言

            截止写这边文章前,已经学习了hadoop、hive、hbase、zookeeper、sqoop,后续还会学习Hadoop生态圈的其他模块内容,这篇文章的内容也会逐渐完善。下面我把学习中有必要去了解和掌握的和大家一起分享。

    一、Hadoop生态

    Hadoop

    • Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
    • 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
    • Hadoop核心组成:HDFS(分布式文件系统)、MapReduce(分布式计算模型)、Yarn(分布式资源调度框架)、Common(工具类)。

    Hadoop生态圈

    • 广义上指一个生态圈,泛指大数据技术相关的开源组件或产品,如hbase、hive、spark、pig、zookeeper、kafka、flume、phoenix、sqoop等。

    在这里插入图片描述

    二、生态圈模块

    HDFS

           #  HDFS学习

    MapReduce

           #  MapReduce学习

    Yarn

           #  Yarn学习

    Zookeeper

           #  Zookeeper学习

    Hive

           #  Hive基础

           #  Hive数据结构及HiveDDL操作

           #  Hive函数

           #  Hive数据倾斜总结

    Hbase

           #  HBase学习

    Sqoop

           #  Sqoop介绍及常用使用

    Spark

           #  Spark基础及架构

           #  Spark SQL入门基础及使用

           #  Spark SQL操作外部数据源

           #  Spark Streaming流式数据处理


    PS:如果有写错或者写的不好的地方,欢迎各位大佬在评论区留下宝贵的意见或者建议,敬上!如果这篇博客对您有帮助,希望您可以顺手帮我点个赞!不胜感谢!

    原创作者:wsjslient

    作者主页:https://blog.csdn.net/wsjslient


    展开全文
  • HADOOP生态圈

    2019-07-05 13:03:15
    HADOOP生态圈介绍 hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 具有可靠、高效...

    HADOOP生态圈介绍

    1. hadoop 生态概况

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

    用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    具有可靠、高效、可伸缩的特点。

    Hadoop的核心是YARN,HDFS和Mapreduce

    下图是hadoop生态系统,集成spark生态圈。在未来一段时间内,hadoop将于spark共存,hadoop与spark

    都能部署在yarn、mesos的资源管理系统之上在这里插入图片描述
    下面将分别对以上各组件进行简要介绍,具体介绍参见后续系列博文。

    2、HDFS(Hadoop分布式文件系统)
    源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。

    HDFS是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。

    HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。

    它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群不同物理机器上。

    3、Mapreduce(分布式计算框架)
    源自于google的MapReduce论文,发表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。

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

    其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。

    MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。

    1. HBASE(分布式列存数据库)

    源自Google的Bigtable论文,发表于2006年11月,HBase是Google Bigtable克隆版

    HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。

    HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。

    HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

    1. Zookeeper(分布式协作服务)

    源自Google的Chubby论文,发表于2006年11月,Zookeeper是Chubby克隆版

    解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。

    Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。

    1. HIVE(数据仓库)

    由facebook开源,最初用于解决海量结构化的日志数据统计问题。

    Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。

    HQL用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。

    7.Pig(ad-hoc脚本)

    由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc(计算在query时发生)数据分析工具

    Pig定义了一种数据流语言—Pig Latin,它是MapReduce编程的复杂性的抽象,Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Latin)。

    其编译器将Pig Latin翻译成MapReduce程序序列将脚本转换为MapReduce任务在Hadoop上执行。通常用于进行离线分析。

    8.Sqoop(数据ETL/同步工具)

    Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。

    Sqoop利用数据库技术描述数据架构,用于在关系数据库、数据仓库和Hadoop之间转移数据。

    9.Flume(日志收集工具)

    Cloudera开源的日志收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点。

    它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。

    同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。

    总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统。当然也可以用于收集其他类型数据

    10.Mahout(数据挖掘算法库)
    Mahout起源于2008年,最初是Apache Lucent的子项目,它在极短的时间内取得了长足的发展,现在是Apache的顶级项目。

    Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。

    Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。

    除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。

    1. Oozie(工作流调度器)

    Oozie是一个可扩展的工作体系,集成于Hadoop的堆栈,用于协调多个MapReduce作业的执行。它能够管理一个复杂的系统,基于外部事件来执行,外部事件包括数据的定时和数据的出现。

    Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。

    Oozie使用hPDL(一种XML流程定义语言)来描述这个图。

    1. Yarn(分布式资源管理器)

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

    • 资源管理:包括应用程序管理和机器资源管理

    • 资源双层调度

    • 容错性:各个组件均有考虑容错性

    • 扩展性:可扩展到上万个节点

    1. Mesos(分布式资源管理器)

    Mesos诞生于UC Berkeley的一个研究项目,现已成为Apache项目,当前有一些公司使用Mesos管理集群资源,比如Twitter。

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

    1. Tachyon(分布式内存文件系统)

    Tachyon(/'tæki:ˌɒn/ 意为超光速粒子)是以内存为中心的分布式文件系统,拥有高性能和容错能力,

    能够为集群框架(如Spark、MapReduce)提供可靠的内存级速度的文件共享服务。

    Tachyon诞生于UC Berkeley的AMPLab。

    1. Tez(DAG计算模型)

    Tez是Apache最新开源的支持DAG作业的计算框架,它直接源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,

    即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,

    这样,这些分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的DAG作业。

    目前hive支持mr、tez计算模型,tez能完美二进制mr程序,提升运算性能。

    1. Spark(内存DAG计算模型)

    Spark是一个Apache项目,它被标榜为“快如闪电的集群计算”。它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。

    最早Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架。

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

    1. Giraph(图计算模型)

    Apache Giraph是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。

    最早出自雅虎。雅虎在开发Giraph时采用了Google工程师2010年发表的论文《Pregel:大规模图表处理系统》中的原理。后来,雅虎将Giraph捐赠给Apache软件基金会。

    目前所有人都可以下载Giraph,它已经成为Apache软件基金会的开源项目,并得到Facebook的支持,获得多方面的改进。

    1. GraphX(图计算模型)

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

    1. MLib(机器学习库)

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

    1. Streaming(流计算模型)

    Spark Streaming支持对流数据的实时处理,以微批的方式对实时数据进行计算

    1. Kafka(分布式消息队列)

    Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数据。

    活跃的流式数据在web网站应用中非常常见,这些数据包括网站的pv、用户访问了什么内容,搜索了什么内容等。

    这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理。

    1. Phoenix(hbase sql接口)

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

    1. ranger(安全管理工具)

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

    1. knox(hadoop安全网关)

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

    1. falcon(数据生命周期管理工具)

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

    26.Ambari(安装部署配置管理工具)

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

    展开全文
  • hadoop生态圈

    2019-08-16 19:30:11
    1.Hadoop是什么? 适合大数据的分布式存储与计算...2.Hadoop生态圈 ①HBase Google Bigtable的开源实现 列式数据库 可集群化 可以使用shell、web、api等多种方式访问 适合高读写(insert)的场景 HQL查询语言 NoSQL的...

    1.Hadoop是什么?

    适合大数据的分布式存储与计算平台

    HDFS: Hadoop Distributed File System分布式文件系统

    MapReduce:并行计算框架

    2.Hadoop生态圈

    hadoop

    ①HBase

    Google Bigtable的开源实现

    列式数据库

    可集群化

    可以使用shell、web、api等多种方式访问

    适合高读写(insert)的场景

    HQL查询语言

    NoSQL的典型代表产品

    hadoop

    ②Hive

    数据仓库工具。可以把Hadoop下的原始结构化数据变成Hive中的表

    支持一种与SQL几乎完全相同的语言HiveQL。除了不支持更新、索引和事务,几乎SQL的其它特征都能支持

    可以看成是从SQL到Map-Reduce的映射器

    提供shell、JDBC/ODBC、Thrift、Web等接口

    hadoop

    ③Zookeeper

    Google Chubby的开源实现

    用于协调分布式系统上的各种服务。例如确认消息是否准确到达,防止单点失效,处理负载均衡等

    应用场景:Hbase,实现Namenode自动切换

    工作原理:领导者,跟随者以及选举过程

    hadoop

    ④Sqoop

    用于在Hadoop和关系型数据库之间交换数据

    通过JDBC接口连入关系型数据库

    hadoop

    ⑤Chukwa

    架构在Hadoop之上的数据采集与分析框架

    主要进行日志采集和分析

    通过安装在收集节点的“代理”采集最原始的日志数据

    代理将数据发给收集器

    收集器定时将数据写入Hadoop集群

    指定定时启动的Map-Reduce作业队数据进行加工处理和分析

    hadoop

    ⑥Pig

    Hadoop客户端

    使用类似于SQL的面向数据流的语言Pig Latin

    Pig Latin可以完成排序,过滤,求和,聚组,关联等操作,可以支持自定义函数

    Pig自动把Pig Latin映射为Map-Reduce作业上传到集群运行,减少用户编写Java程序的苦恼

    hadoop

    ⑦Avro

    数据序列化工具,由Hadoop的创始人Doug Cutting主持开发 

    用于支持大批量数据交换的应用。支持二进制序列化方式,可以便捷,快速地处理大量数据 

    动态语言友好,Avro提供的机制使动态语言可以方便地处理 Avro数据。 

    Thrift接口

    hadoop

    ⑧Cassandra

    NoSQL,分布式的Key-Value型数据库,由Facebook贡献

    与Hbase类似,也是借鉴Google Bigtable的思想体系

    只有顺序写,没有随机写的设计,满足高负荷情形的性能需求

    hadoop

    3.Hadoop生态圈流程图

    hadoop



    展开全文
  • Hadoop生态圈总体介绍

    2018-04-13 17:17:59
    Hadoop生态圈总体介绍 Hadoop生态圈总体介绍 Hadoop生态圈总体介绍
  • 大数据Hadoop生态圈介绍

    万次阅读 多人点赞 2019-07-12 14:22:47
    大数据Hadoop生态圈-组件介绍 Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠、高效、可伸缩等特点。 Hadoop的核心组件是HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈...

    大数据Hadoop生态圈-组件介绍

        Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠、高效、可伸缩等特点。

        Hadoop的核心组件是HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈,目前生态圈结构大致如图所示:

       根据服务对象和层次分为:数据来源层、数据传输层、数据存储层、资源管理层、数据计算层、任务调度层、业务模型层。接下来对Hadoop生态圈中出现的相关组件做一个简要介绍。

        1、HDFS(分布式文件系统)

    HDFS是整个hadoop体系的基础,负责数据的存储与管理。HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。

    client:切分文件,访问HDFS时,首先与NameNode交互,获取目标文件的位置信息,然后与DataNode交互,读写数据

    NameNode:master节点,每个HDFS集群只有一个,管理HDFS的名称空间和数据块映射信息,配置相关副本信息,处理客户端请求。

    DataNode:slave节点,存储实际数据,并汇报状态信息给NameNode,默认一个文件会备份3份在不同的DataNode中,实现高可靠性和容错性。

    Secondary NameNode:辅助NameNode,实现高可靠性,定期合并fsimage和fsedits,推送给NameNode;紧急情况下辅助和恢复NameNode,但其并非NameNode的热备份。

    Hadoop 2为HDFS引入了两个重要的新功能 ——Federation和高可用(HA):

    • Federation允许集群中出现多个NameNode,之间相互独立且不需要互相协调,各自分工,管理自己的区域。 DataNode 被用作通用的数据块存储设备。每个 DataNode 要向集群中所有NameNode 注册,并发送心跳报告,执行所有 namenode的命令。

    • HDFS中的高可用性消除了Hadoop 1中存在的单点故障,其中,NameNode故障将导致集群中断。HDFS的高可用性提供故障转移功能(备用节点从失败的主NameNode接管工作的过程)以实现自动化。

        2、MapReduce(分布式计算框架)

    MapReduce是一种基于磁盘的分布式并行批处理计算模型,用于处理大数据量的计算。其中Map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,Reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。

    Jobtracker:master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给Tasktracker。

    Tacktracker:slave节点,运行 Map task和Reduce task;并与Jobtracker交互,汇报任务状态。

    Map task:解析每条数据记录,传递给用户编写的map()函数并执行,将输出结果写入到本地磁盘(如果为map—only作业,则直接写入HDFS)。

    Reduce task:从Map 它深刻地执行结果中,远程读取输入数据,对数据进行排序,将数据分组传递给用户编写的Reduce()函数执行。

        3、Spark(分布式计算框架)

    Spark是一种基于内存的分布式并行计算框架,不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

    Cluster Manager:在standalone模式中即为Master主节点,控制整个集群,监控worker。在YARN模式中为资源管理器

    Worker节点:从节点,负责控制计算节点,启动Executor或者Driver。

    Driver: 运行Application 的main()函数

    Executor:执行器,是为某个Application运行在worker node上的一个进程

    Spark将数据抽象为RDD(弹性分布式数据集),内部提供了大量的库,包括Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX。 开发者可以在同一个应用程序中无缝组合使用这些库。

    Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的

    Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。

    Spark Streaming:对实时数据流进行处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据,通过短时批处理实现的伪流处理。

    MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。

    GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作

        4、Flink(分布式计算框架)

    Flink是一个基于内存的分布式并行处理框架,类似于Spark,但在部分设计思想有较大出入。对 Flink 而言,其所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。

    Flink VS Spark

    Spark中,RDD在运行时是表现为Java Object,而Flink主要表现为logical plan。所以在Flink中使用的类Dataframe api是被作为第一优先级来优化的。但是相对来说在spark RDD中就没有了这块的优化了。

    Spark中,对于批处理有RDD,对于流式有DStream,不过内部实际还是RDD抽象;在Flink中,对于批处理有DataSet,对于流式我们有DataStreams,但是是同一个公用的引擎之上两个独立的抽象,并且Spark是伪流处理,而Flink是真流处理。

        5、Yarn/Mesos(分布式资源管理器)

    YARN是下一代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。

    Mesos诞生于UC Berkeley的一个研究项目,现已成为Apache项目,当前有一些公司使用Mesos管理集群资源,比如Twitter。与yarn类似,Mesos是一个资源统一管理和调度的平台,同样支持比如MR、steaming等多种运算框架。

        6、Zookeeper(分布式协作服务)

    解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。

    Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。

        7、Sqoop(数据同步工具)

    Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。

    Sqoop利用数据库技术描述数据架构,用于在关系数据库、数据仓库和Hadoop之间转移数据。

        8、Hive/Impala(基于Hadoop的数据仓库)

    Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。

    HQL用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。

    Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。 它是一个用C ++和Java编写的开源软件。 与Apache Hive不同,Impala不基于MapReduce算法。 它实现了一个基于守护进程的分布式架构,它负责在同一台机器上运行的查询执行的所有方面。因此执行效率高于Apache Hive。

        9、HBase(分布式列存储数据库)

    HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。

    HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。

    HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

       10、Flume(日志收集工具)

    Flume是一个可扩展、适合复杂环境的海量日志收集系统。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。

    同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。

    Flume以Agent为最小的独立运行单位,一个Agent就是一个JVM。单个Agent由Source、Sink和Channel三大组件构成

     Source:从客户端收集数据,并传递给Channel。

    Channel:缓存区,将Source传输的数据暂时存放。

    Sink:从Channel收集数据,并写入到指定地址。

    Event:日志文件、avro对象等源文件。

     11、Kafka(分布式消息队列)

    Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。实现了主题、分区及其队列模式以及生产者、消费者架构模式。

    生产者组件和消费者组件均可以连接到KafKa集群,而KafKa被认为是组件通信之间所使用的一种消息中间件。KafKa内部氛围很多Topic(一种高度抽象的数据结构),每个Topic又被分为很多分区(partition),每个分区中的数据按队列模式进行编号存储。被编号的日志数据称为此日志数据块在队列中的偏移量(offest),偏移量越大的数据块越新,即越靠近当前时间。生产环境中的最佳实践架构是Flume+KafKa+Spark Streaming。

       12、Oozie(工作流调度器)

    Oozie是一个可扩展的工作体系,集成于Hadoop的堆栈,用于协调多个MapReduce作业的执行。它能够管理一个复杂的系统,基于外部事件来执行,外部事件包括数据的定时和数据的出现。

    Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。

    Oozie使用hPDL(一种XML流程定义语言)来描述这个图。

    展开全文
  • 随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈,目前生态圈结构大致如图所示: 根据服务对象和层次分为:数据来源层、数据传输层、数据存储层、资源管理层、数据计算层、任务调度层、业务模型层。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,174
精华内容 1,269
关键字:

hadoop生态圈