##spark总结 ###1.Spark的特色:java
###2.spark的提供的功能 以及应用场景python
**spark功能模块 ** | 应用场景 |
---|---|
RDD | 离线数据处理 |
Spark SQL, DataFrames and Datasets | 结构化的关系数据运算 |
Structured Streaming | 结构化流:统一批处理与流处理计算的工具 |
Spark Streaming | 流数据实时计算 |
Machine Learning (MLlib) | 机器学习 |
GraphX | 图数据计算 |
SparkR | R on Spark |
###3.spark重大版本更新算法
spark2.3.0的重大更新:sql
一、支持第四种调度引擎 Kubernetes clusters。 二、Structured Streaming 引入了低延迟的连续处理(continuous processing);
spark2.0.0的重大更新:编程
一、SparkSession:这是一个新入口,取代了本来的SQLContext与HiveContext 二、基于DataFrame的机器学习API将做为主ML API出现;基于RDD的API进入维护模式。 三、spark 本身的标准SQL(Ansi-sql sql-2003标准)解析引擎,同时兼容hive-SQL. 四、数据框(DataFrame)/Dataset (数据集)API的统一。
spark1.6.X的重大更新:架构
1. 新增Dataset API 2. 使用堆外内存执行SQL,避免GC形成的瓶颈 3. 支持对非标准JSON文件的读操做 4. 支持基于文件的SQL查询。
###4. spark-streaming,storm,Flink对比app
**对比项 ** | ** 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 |
结论:工具