-
什么是分布式计算?
-
分布式程序:MapReduce、Spark、Flink程序
-
多进程:一个程序由多个进程来共同实现,不同进程可以运行在不同机器上 -
每个进程所负责计算的数据是不一样,都是整体数据的某一个部分 -
自己基于MapReduce或者Spark的API开发的程序:数据处理的逻辑
-
分布式资源:YARN、Standalone资源容器
-
实现统一的硬件资源管理:MR、Flink、Spark on YARN
-
Spark程序的组成结构?
-
Application:程序 -
进程:一个Driver、多个Executor -
运行:多个Job、多个Stage、多个Task
-
什么是Standalone?
-
为什么要用Spark on YARN?
-
Master和Worker是什么?
-
Driver和Executer是什么?
-
step1:启动了分布式资源平台 -
step2:开发一个分布式计算程序
sc = SparkContext(conf)
# step1:读取数据
inputRdd = sc.textFile(hdfs_path)
#step2:转换数据
wcRdd = inputRdd.filter.map.flatMap.reduceByKey
#step3:保存结果
wcRdd.foreach
sc.stop
?step3:提交分布式程序到分布式资源集群运行
spark-submit xxx.py
executor个数和资源
driver资源配置
?
-
-
Job是怎么产生的?
-
DAG是怎么生成的?
-
Task的个数怎么决定?
-
Spark的算子分为几类?
-
转换:Transformation
-
返回值:RDD -
为lazy模式,不会触发job的产生 -
map、flatMap
-
触发:Action
-
返回值:非RDD -
触发job的产生 -
count、first
|