美文网首页大数据,机器学习,人工智能玩转大数据大数据
大数据架构简述流处理、批处理、交互式查询

大数据架构简述流处理、批处理、交互式查询

作者: 叫我老村长 | 来源:发表于2020-03-10 14:06 被阅读0次

    我们将大数据处理按处理时间的跨度要求分为以下几类

    基于实时数据流的处理,通常的时间跨度在数百毫秒到数秒之间
    
    基于历史数据的交互式查询,通常时间跨度在数十秒到数分钟之间
    
    复杂的批量数据处理,通常的时间跨度在几分钟到数小时之间
    

    1.流处理
    流是一种数据传送技术,它把客户端数据变成一个稳定的流。正是由于数据传送呈现连续不停的形态,所以流引擎需要连续不断处理数据

    流处理的主要应用场景:金融领域和电信领域

    1.1 Stom
    Storm是一个免费开源、分布式、高容错的实时计算系统。

    Storm主要分为两种组件Nimbus和Supervisor。这两种组件都是快速失败的,没有状态。任务状态和心跳信息等都保存在Zookeeper上的,提交的代码资源都在本地机器的硬盘上。
    1)Nimbus负责在集群里面发送代码,分配工作给机器,并且监控状态。全局只有一个。
    2)Supervisor会监听分配给它那台机器的工作,根据需要启动/关闭工作进程Worker。每一个要运行Storm的机器上都要部署一个,并且,按照机器的配置设定上面分配的槽位数。
    3)Zookeeper是Storm重点依赖的外部资源。Nimbus和Supervisor甚至实际运行的Worker都是把心跳保存在Zookeeper上的。Nimbus也是根据Zookeerper上的心跳和任务运行状况,进行调度和任务分配的。
    4)Storm提交运行的程序称为Topology。
    5)Topology处理的最小的消息单位是一个Tuple,也就是一个任意对象的数组。
    Topology由Spout和Bolt构成。Spout是发出Tuple的结点。Bolt可以随意订阅某个Spout或者Bolt发出的Tuple。Spout和Bolt都统称为component。

    1.2 Spark Streaming
    Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。

    Spark Streaming的基本原理是将输入数据流以时间片(秒级)为单位进行拆分,然后以类似批处理的方式处理每个时间片数据

    2.交互式查询(Adhoc Query)
    在商业智能领域少量更新和大量扫描分析场景,目前是Impala+Kudu/Hive/Spark SQL/Greenplum Mpp数据库在混战。

    3.批处理技术
    3.1 MapReduce(Hadoop)
    MapReduce模式的主要思想是自动将一个大的计算拆解成Map和Reduce

    3.2 Spark
    Spark的中间数据放到内存中,对于迭代运算效率更高。
    Spark更适合于迭代运算比较多的ML和DM运算。因为在Spark里面,有RDD的抽象概念。
    Spark比Hadoop更通用
    Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues, sort,partionBy等多种操作类型,Spark把这些操作称为Transformations。同时还提供Count, collect, reduce, lookup, save等多种actions操作。

    相关文章

      网友评论

        本文标题:大数据架构简述流处理、批处理、交互式查询

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