Spark

63 阅读1分钟

什么是Spark

Spark 是一个基于内存, 通用, 可扩展的集群计算引擎   并且 Spark 目前已经成为 Apache 最活跃的开源项目, 有超过 1000 个活跃的贡献者.

Spark并行度

Spark作业中,各个stage的task的数量,代表Spark作业在各个阶段的stage的并行度 分为资源并行度(物理并行度)和数据并行度(逻辑并行度) 在Spark Application运行时,并行度可以从两个方面理解: 1) 资源并行度:由节点数(executor)和cpu数(core)决定的 2) 数据并行度:task的数据,partition大小 task又分为map时的task和reduce时的task; task的数目和很多因素有关,资源的总core数,spark.default.parallelism参数 spark.sql.shuffle.partitions参数,读取数据源的类型,shuffle方法第二个参数,repartition的数目等等。

Spark有几种部署方式?请分别简要论述

1 Local运行在一台集群,通常是测试环境 2 standlone 构建一个基于Master+Slaves的资源调度集群,Spark任务提交给Master运行。是Spark自身的调度系统。 3 Yarn Spark客户端直接连接Yarn,不需要额外构建Spark集群。有yarn-client和yarn-cluster两种模式,主要区别在于:Driver程序的运行节点 4 Mesos 国内较少用