Spark是一种由Scala语言开发的快速、通用、可扩展打大数据分析引擎,Spark更倾向于计算。
一次性数据计算
框架在处理数据的时候,会从存储设备中读取数据,进行逻辑操作,然后将处理的结果重新存储到介质中。
因此,MapReduce不适合迭代式数据开发。
但是Spark基于内存,当资源受到限制的时候,还是需要依赖MapReduce,因此不能完全代替。
SparkCore
提供Spark最基础与核心的功能,以下功能都是基于Core进行扩展
SparkSQL
Spark用来操作结构化数据
SparkStreaming
针对实时数据进行流式计算的组件
Spark运行环境
Spark作为数据处理框架和计算引擎,通常以yarn作为主流运行环境
Local模式
提交任务参数
spark-submit
参数 | 解释 | 可选值举例 |
---|---|---|
–class | Spark程序中包含主函数的类 | |
–master | Spark程序运行的模式 | local[*] Yarn |
–executor-memory 1G | 指定每个executor可用内存为1G | 根据集群配置 |
–total-executor-cores 2 | 指定所有executor使用的cpu核数为2个 | 根据集群配置 |
–executor-cores | 指定每个executor使用的cpu核数 | 根据集群配置 |
application-jar | 打包好的jar包,包含依赖 | 根据集群配置 |
高可用
基于Yarn调度资源环境
部署模式对比
模式 | Spark安装机器数 | 需启动的进程 | 所属者 | 应用场景 |
---|---|---|---|---|
Local | 1 | 无 | Spark | 测试 |
Standalone | 3 | Master&Worker | Spark | 单独部署 |
Yarn | 1 | Yarn&HDFS | Hadoop | 混合部署 |
端口号
4040:查看spark-shell运行的任务情况端口
7077:Spark Master内部通讯端口
8080:Standalone模式下 MasterWeb端口
18080:历史服务器
8088:Yarn任务运行监控