一、大数据处理引擎Spark介绍
1.大数据处理技术栈
大数据的特性,数据是海量的,数据源是丰富多样的,有消息,图片,音视频流,数据产生的非常快,需要快速处理,提高数据价值。 数据生成后,需要存储元数据信息,选择合适的存储格式,像Parquet、ORC是两种高性能的列式存储,Hudi数据存储的中间件,优化存储的读写,也可以存储到分布式文件存储系统HDFS,分布式消息系统kafka,keyvalue分布式存储的nosql引擎数据库HBase,基于列式存储的分布式数据库Kudu,字节提供的TOS,S3对象存储。 存储的数据需要计算才能使用,大数据的计算框架,Spark批式计算,Flink流式计算,Presto等处理在线分布式查询场景的,是可交互式的OLAP引擎,计算框架借助资源管理的编排调度工具YARN,K8S,来运行在分布式集群中处理存储的数据。 计算处理存储的数据后提供给上层应用,有BI报表,广告,推荐,金融风控等。
2.常见大数据处理链路
数据库中采集到的数据称为数据源,存储到分布式存储系统中HDFS等,进行一系列的数据处理,会有多次数据读取写入,可以是各种存储系统,也可以是各种数据库,讲处理的结果进行计算,再做各种应用。
3.开源大数据处理引擎
批式计算:Hadoop、Hive、Spark 流式计算:Flink OLAP:presto,ClickHouse,Impala,DORIS
MapReduce解决了Hadoop诞生,数据大规模处理数据,主流Spark是基于内存处理,对MapReduce进行了优化。
4.什么是Spark?
Spark是用于大规模数据处理的统一分析引擎,是一种多语言引擎,可以用于单机节点或集群上来执行数据工程,数据科学和机器学习。
feature:
- 多语言选择,用统一的方式处理流批的数据
- 可以用为仪表盘执行快速的sql查询分析,
- 适用于大规模的数据科学,对PB级别的数据来执行探索性的数据分析,对数据进行训练建模预测。
- 机器学习,在单机上训练机器学习的算法,可以很方便的拓展到大规模集群上
5.Spark版本演进
Spark生态&特点 -SparkCore 核心块 基本功能:任务调度,内存管理 -SparkSQL,操作结构化数据的核心组件,直接查询Hbase等各种各样的数据源,可以进行交互式的查询 -StruturedStreaming 流式计算框架,支持高吞吐的,可容错处理的,实时流式数据 -MLlib,机器学习算法库,分类,聚类,回归等,模型评估, -GraphX分布式图处理框架,提供图计算,图挖掘的一些API
- 统一引擎,支持各种各样分布式场景
- 多语言支持
- 支持丰富的数据源:内置DataSource,Text;Parquet/ORC;JSON/CSV;JSBC 自定义DataSource:Hbase/Mongo等
- 丰富灵活的API/算子:RDD
- 支持K8S/YARN/Meso资源调度