MAPREDUCE服务 MRS-Spark基本原理:Spark简介
Spark简介
Spark是一个开源的,并行数据处理框架,能够帮助用户简单、快速的开发大数据应用,对数据进行离线处理、流式处理、交互式分析等。
Spark提供了一个快速的计算、写入及交互式查询的框架。相比于Hadoop,Spark拥有明显的性能优势。Spark使用in-memory的计算方式,通过这种方式来避免一个MapReduce工作流中的多个任务对同一个数据集进行计算时的IO瓶颈。Spark利用Scala语言实现,Scala能够使得处理分布式数据集时,能够像处理本地化数据一样。除了交互式的数据分析,Spark还能够支持交互式的数据挖掘,由于Spark是基于内存的计算,很方便处理迭代计算,而数据挖掘的问题通常都是对同一份数据进行迭代计算。除此之外,Spark能够运行于安装Hadoop 2.0 Yarn的集群。之所以Spark能够在保留MapReduce容错性,数据本地化,可扩展性等特性的同时,能够保证性能的高效,并且避免繁忙的磁盘IO,主要原因是因为Spark创建了一种叫做RDD(Resilient Distributed Dataset)的内存抽象结构。
原有的分布式内存抽象,例如key-value store以及数据库,支持对于可变状态的细粒度更新,这一点要求集群需要对数据或者日志的更新进行备份来保障容错性。这样就会给数据密集型的工作流带来大量的IO开销。而对于RDD来说,它只有一套受限制的接口,仅支持粗粒度的更新,例如map,join等等。通过这种方式,Spark只需要简单的记录建立数据的转换操作的日志,而不是完整的数据集,就能够提供容错性。这种数据的转换链记录就是数据集的溯源。由于并行程序,通常是对一个大数据集应用相同的计算过程,因此之前提到的粗粒度的更新限制并没有想象中的大。事实上,Spark论文中阐述了RDD完全可以作为多种不同计算框架,例如MapReduce,Pregel等的编程模型。并且,Spark同时提供了操作允许用户显式地将数据转换过程持久化到硬盘。对于数据本地化,是通过允许用户能够基于每条记录的键值,控制数据分区实现的。(采用这种方式的一个明显好处是,能够保证两份需要进行关联的数据将会被同样的方式进行哈希)。如果内存的使用超过了物理限制,Spark将会把这些比较大的分区写入到硬盘,由此来保证可扩展性。
Spark具有如下特点:
- 快速:数据处理能力,比MapReduce快10-100倍。
- 易用:可以通过Java,Scala,Python,简单快速的编写并行的应用处理大数据量,Spark提供了超过80种的操作符来帮助用户组建并行程序。
- 普遍性:Spark提供了众多的工具,例如Spark SQL和Spark Streaming。可以在一个应用中,方便地将这些工具进行组合。
- 与Hadoop集成:Spark能够直接运行于Hadoop的集群,并且能够直接读取现存的Hadoop数据。
MRS 服务的Spark组件具有以下优势:
- MRS服务的Spark Streaming组件支持数据实时处理能力而非定时触发。
- MRS服务的Spark组件支持Structured Streaming,支持DataSet API来构建流式应用,提供了exactly-once的语义支持,流和流的join操作支持内连接和外连接。
- MRS服务的Spark组件支持pandas_udf,可以利用pandas_udf替代pyspark中原来的udf对数据进行处理,可以减少60%-90%的处理时长(受具体操作影响)。
- MRS服务的Spark组件支持Graph功能,支持图计算作业使用图进行建模。
- MRS服务的SparkSQL兼容部分Hive语法(以Hive-Test-benchmark测试集上的64个SQL语句为准)和标准SQL语法(以tpc-ds测试集上的99个SQL语句为准)。
Spark的架构和详细原理介绍,请参见:https://archive.apache.org/dist/spark/docs/3.1.1/。
- 什么是Spark_如何使用Spark_Spark的功能是什么
- MapReduce服务_什么是Hue_如何使用Hue
- MapReduce服务_什么是存算分离_如何配置MRS集群存算分离
- 什么是Spark SQL作业_数据湖探索DLISpark SQL作业
- MapReduce工作原理_MapReduce是什么意思_MapReduce流程_MRS_华为云
- 数据备份归档在哪里_数据分析存储系统_大数据存储管理
- Hudi服务_什么是Hudi_如何使用Hudi
- MapReduce服务_什么是Flume_如何使用Flume
- MapReduce服务_什么是Loader_如何使用Loader
- MapReduce服务_什么是ZooKeeper_如何使用ZooKeeper