本文共 1631 字,大约阅读时间需要 5 分钟。
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见
Spark 对任务的计算都依托于 Executor 的能カ,所有的 Executor 都有自己的 Spark 执行环境 SparkEnv 。
有了 SparkEnv ,就可以将数据存储在存储体系中,就能利用计算引对计算任务进行处理,就可以在节点间进行通信等。
SparkEnv 还提供了多种多样的内部组件,实现不同的功能。
SparkEnv 是一个很重要的组件,虽然在创建 SparkContext 的时候也涉及它(只是因为 local 模式的需要),但是它与 Executor 的关系则更为紧密。
/** * 开发者 API(指面向开发者的低层次不稳定的 API) * * 保存正在运行的Spark实例( master 或者 worker )的所有运行时环境对象, * * 包括序列化器、RpcEnv、块管理器、map 输出跟踪器等。 * * 当前Spark代码通过全局变量查找SparkEnv,因此所有线程都可以访问相同的SparkEnv。 * * 可以通过 SparkEnv.get 访问它(例如,在创建SparkContext之后)。 * * @param executorId executor 的 ID * @param rpcEnv RPC 环境 * @param serializer 序列化器 * @param closureSerializer 闭包序列化器 * @param serializerManager 序列化器管理者 * @param mapOutputTracker map 输出的追踪器,Shuffle 时会用到 * @param shuffleManager Shuffle 管理者 * @param broadcastManager 广播变量管理者 * @param blockManager 块管理者 * @param securityManager 安全管理者 * @param metricsSystem 度量系统 * @param memoryManager 内存管理者 * @param outputCommitCoordinator 输出提交协调者 * @param conf Spark 的配置对象 */@DeveloperApiclass SparkEnv ( val executorId: String, private[spark] val rpcEnv: RpcEnv, val serializer: Serializer, val closureSerializer: Serializer, val serializerManager: SerializerManager, val mapOutputTracker: MapOutputTracker, val shuffleManager: ShuffleManager, val broadcastManager: BroadcastManager, val blockManager: BlockManager, val securityManager: SecurityManager, val metricsSystem: MetricsSystem, val memoryManager: MemoryManager, val outputCommitCoordinator: OutputCommitCoordinator, val conf: SparkConf) extends Logging
转载地址:http://ekgji.baihongyu.com/