Spark分布式执行涉及的组件
驱动器程序
- 驱动器程序通过一个SparkContext对象来访问Spark,这个对象代表对计算集群的一个连接。
- 用shell执行Spark的时候,在启动shell的时候,已经自动创建了一个SparkContext对象。
- 有了SparkContext以后,就可以用它来创建RDD。
- 驱动器程序要管理多个执行器节点
执行器
- 如果在集群上运行count操作, 那么不同的节点会统计文件的不同部分的行数
- 本地模式下运行Spark shell,所有工作在单节点上执行
一句话概括
Spark会将函数发送到各个执行器节点上,这样就可以在单一的驱动器程序中编程,并让代码自动运行在多个节点上。
Tips
最近开发中遇到一个问题:有些函数只能在driver上运行。那么怎么判断是在的driver还是executor上呢,我个人理解就是RDD算子里面的操作,就是在executor上;其余的就是在driver上。