这是我参加[第四届青训营]笔记创作活动的第5天。 spark的原理|概述
01、大数据处理引擎Spark介绍
python可以开发
02、3 内置rdd、自定义rdd rdd依赖:窄依赖、宽依赖
03、sparksql原理解析
一、简介
Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 Apache 的顶级项目。相对于 MapReduce 的批处理计算,Spark 可以带来上百倍的性能提升,因此它成为继 MapReduce 之后,最为广泛使用的分布式计算框架。
二、特点
Apache Spark 具有以下特点:
使用先进的 DAG 调度程序,查询优化器和物理执行引擎,以实现性能上的保证; 多语言支持,目前支持的有 Java,Scala,Python 和 R; 提供了 80 多个高级 API,可以轻松地构建应用程序; 支持批处理,流处理和复杂的业务分析; 丰富的类库支持:包括 SQL,MLlib,GraphX 和 Spark Streaming 等库,并且可以将它们无缝地进行组合; 丰富的部署模式:支持本地模式和自带的集群模式,也支持在 Hadoop,Mesos,Kubernetes 上运行; 多数据源支持:支持访问 HDFS,Alluxio,Cassandra,HBase,Hive 以及数百个其他数据源中的数据。
三、集群架构 Term(术语) Meaning(含义) Application Spark 应用程序,由集群上的一个 Driver 节点和多个 Executor 节点组成。 Driver program 主运用程序,该进程运行应用的 main() 方法并且创建 SparkContext Cluster manager 集群资源管理器(例如,Standlone Manager,Mesos,YARN) Worker node 执行计算任务的工作节点 Executor 位于工作节点上的应用进程,负责执行计算任务并且将输出数据保存到内存或者磁盘中 Task 被发送到 Executor 中的工作单元
执行过程:
用户程序创建 SparkContext 后,它会连接到集群资源管理器,集群资源管理器会为用户程序分配计算资源,并启动 Executor; Driver 将计算程序划分为不同的执行阶段和多个 Task,之后将 Task 发送给 Executor; Executor 负责执行 Task,并将执行状态汇报给 Driver,同时也会将当前节点资源的使用情况汇报给集群资源管理器。