美文网首页
「大数据」03Hadoop与Spark开源大数据技术栈

「大数据」03Hadoop与Spark开源大数据技术栈

作者: 林拂晓 | 来源:发表于2020-02-14 20:31 被阅读0次

    Hadoop与Spark开源大数据技术栈如下图:

    大数据技术栈架构图

    (1)数据收集层:主要由关系型与非关系型数据收集组件、分布式消息队列构成。

    ①Sqoop/Canal:关系型数据收集和导入工具,是连接关系型数据库(如MySQL)和Hadoop(如HDFS)的桥梁,Sqoop可将关系型数据库中的数据全量导入Hadoop,而Canal则可用于实现数据的增量导入。

    ②Flume:非关系型数据收集工具,主要是流式日志数据,可近实时收集,经过滤,聚集后加载到HDFS等存储系统。

    ③Kafka:分布式消息队列,一般作为数据总线使用,它允许多个数据消费者订阅并获取感兴趣的数据。相较于其它消息队列,它采用分布式高容错设计,更适合大数据应用场景。

    (2)数据存储层:主要由分布式文件系统(面向文件的存储)和分布式数据库(面向行/列的存储)构成。

    ①HDFS:Hadoop分布式文件系统,具有良好的扩展性与容错性等优点。

    ②HBase:构建在HDFS之上的分布式数据库,允许用户存储结构化与半结构化的数据,支持行列无限扩展以及数据随机查找与删除。

    ③Kudu:分布式列式存储数据库,允许用户存储结构化数据,支持无限扩展以及数据随机查找与更新。

    (3)资源管理与服务协调

    ①YARN:统一资源管理与调度系统,它能够管理集群中的各种资源(比如CPU和内存等),并按照一定的策略分配给上层的各类应用。

    ②ZooKeeper:基于简化的Paxos协议实现的服务协调系统,它提供了类似文件系统的数据模型,允许用户通过简单的API实现leader选举、服务命名、分布式队列与分布式锁等复杂的分布式通用模块。

    (4)计算引擎层

    ①MapReduce/Tez:MapReduce是一个典型的批处理计算引擎,具有良好的扩展性和容错性,允许用户通过简单的API编写分布式程序;Tez是基于MapReduce开发的通用DAG(Directed Acyclic Graph的简称,有向无环图)计算引擎,能够更加高效地实现复杂的数据处理逻辑,目前被应用在Hive、Pig等数据分析系统中。

    ②Spark:通用的DAG计算引擎,它提供了基于RDD(Resilient Distributed Dataset)的数据抽象表示,允许用户充分利用内存进行快速的数据挖掘和分析。

    ③Impala/Presto:分别由Cloudera和Facebook开源的MPP(MassivelyParallel Processing)系统,允许用户使用标准的SQL处理存储在Hadoop中的数据。它们采用了并行数据库架构,内置了查询优化器,查询下推,代码生成等优化机制,使得大数据处理效率大大提高。

    ④Storm/Spark Streaming:分布式流式实时计算引擎,具有良好的容错性与扩展性,能够高效地处理流式数据,它允许用户通过简单的API完成实时应用程序的开发工作。

    (5)数据分析层

    ①Hive/Pig/Spark SQL:在计算引擎之上构建的支持SQL或脚本语言的分析系统。其中,Hive是基于MapReduce/Tez实现的SQL引擎,Pig是基于MapReduce/Tez实现的工作引擎,Spark SQL是基于Spark实现的SQL引擎。

    ②Mahout/MLlib:在计算引擎之上构建的机器学习库,实现了常用的机器学习和数据挖掘算法。其中,Mahout最初是基于MapReduce实现的,目前正逐步迁移到Spark引擎上,MLlib是基于Spark实现的。

    ③Apache Beam/Cascading:基于各类计算框架而封装的高级API,方便用户构建复杂的数据流水线。Apache Beam统一了批处理和流式处理两类计算框架,提供了更高级的API,方便用户编写与具体计算引擎无关的逻辑代码;Cascading内置了查询计划优化器,能够自动优化用户实现的数据流。采用了面向tuple的数据模型,如果数据可表示成类似于数据库行的格式,则使用Cascading处理将变得很容易。

    文章内容整理于:董西成《大数据技术体系详解:原理、架构与实践》

    相关文章

      网友评论

          本文标题:「大数据」03Hadoop与Spark开源大数据技术栈

          本文链接:https://www.haomeiwen.com/subject/dvgjfhtx.html