zoukankan      html  css  js  c++  java
  • Spark技术的总结 以及同storm,Flink技术的对比

    spark总结

    1.Spark的特点:

    • 高可伸缩性
    • 高容错
    • 基于内存计算
    • 支持多种语言:java,scala,python,R
    • 高质量的算法,比MapReduce快100倍
    • 多种调度引擎:可以运行于YARN,Mesos,standalone 等。

    2.spark的提供的功能 以及应用场景

    **spark功能模块 ** 应用场景
    RDD 离线数据处理
    Spark SQL, DataFrames and Datasets 结构化的关系数据运算
    Structured Streaming 结构化流:统一批处理与流处理计算的工具
    Spark Streaming 流数据实时计算
    Machine Learning (MLlib) 机器学习
    GraphX 图数据计算
    SparkR R on Spark

    3.spark重大版本更新


    spark2.3.0的重大更新:

    1、支持第四种调度引擎 Kubernetes clusters。
    2、Structured Streaming 引入了低延迟的连续处理(continuous processing);
     
    
    

    spark2.0.0的重大更新:

    1、SparkSession:这是一个新入口,取代了原本的SQLContext与HiveContext
    2、基于DataFrame的机器学习API将作为主ML API出现;基于RDD的API进入维护模式。
    3、spark 自己的标准SQL(Ansi-sql sql-2003标准)解析引擎,同时兼容hive-SQL. 
    4、数据框(DataFrame)/Dataset (数据集)API的统一。
    

    spark1.6.X的重大更新:

    1. 新增Dataset API
    2. 使用堆外内存执行SQL,避免GC造成的瓶颈
    3. 支持对非标准JSON文件的读操作
    4. 支持基于文件的SQL查询。
    

    4. spark-streaming,storm,Flink对比

    • 技术特性上的对比
    **对比项 ** ** spark-streaming** ** storm** flink
    流模式 微批处理 行处理 / 或者微批处理 行处理/或者微批处理
    可靠性 Exactly-Once At-Least-Once Exactly-Once
    延迟 秒级 毫秒级 毫秒级
    吞吐量 比较高 非常高 非常高
    容错机制 Recourd ACKs机制 基于RDD的 CheckPoint CheckPoint
    是否有状态
    支持SQL 支持 不支持 支持
    与Hadoop兼容性 支持HDFS、HBase等数据源 不支持 支持HDFS、HBase等数据源

    storm 的任务编程组件是: Topology任务,由spout,bolt组成的DAG 拓扑结构。
    spark-streaming任务变成组件:DStream 数据流的个各种处理方法。

    spark-streaming 和 Flink 是将Flink Job 转换成 JobGraph -> ExecutionGraph.

    • 平台架构上的对比
    对比项 spark-streaming storm flink
    系统角色 driver,executor Numbius,supervisor,worker Client,JobManager,Taskmanager
    应用名称 application Topology application
    组件接口 DataStream DStream spout,bolt
    部署方式 YARN,standalone numbius-supervisor YARN, standalone

    结论:

    1. 由于spark 和Flink都可以基于YARN的方式部署,共用了hadoop生态的HDFS,YARN组件,降低了基础平台的运维工作量。同时Flink的毫秒级延迟实时计算能力和spark秒级延迟实时计算能力是一种相互补充。Flink和spark形成互补且竞争关系。
    2. Flink 在 Mlib,SQL 支持方面都有支持,功能方面和spark竞争关系,都是朝着生态方向发展。不过都可以基于相同的底层平台,大家切换和相互替换的成本都不高。
    3. 虽然storm的也可以基于yarn部署,但这不是其主流使用场景,所以在大数据基础平台方案中Flink可以最终替换的storm平台。
  • 相关阅读:
    cout输出字符串指针
    《深度探索c++对象模型》chapter2 构造函数语义学
    c++virtual inline 是否冲突
    《深度探索c++对象模型》chapter1关于对象对象模型
    《More Effective C++》 条款5 谨慎定义类型转换函数
    《Effective C++》条款26 防卫潜伏的ambiguity模棱两可的状态
    《Effective C++》条款14 总是让base class拥有virtual destructor
    《Effective C++》内存管理
    c++类型转换Type Cast)
    C++中的new/delete与operator new/operator delete
  • 原文地址:https://www.cnblogs.com/honeybee/p/8821091.html
Copyright © 2011-2022 走看看