如何提高数据本地化的级别?
task执行的等待时间延长,从原来的3s提高到6s
提高数据本地化的级别要注意,不要本末倒置
spark.locality.wait 默认3s
spark.locality.process 等待进程本地化的时间,默认与spark.locality.wait相等
spark.locality.node
spark.locality.rack
Spark shuffle阶段的数据传输
MapOutputTrackerWorker(从):在spark集群的每个worker中,负责将本地的map output block信息发送给master中的MapOutputTrackerMaster
MapOutputTrackerMaster(主):在spark集群的master中,负责记录各个worker节点的map output block信息
BlockManager:每个Executor中的BlockManager实例化的时候都会向Dirver中的BlockManagerMaster注册信息,而BlockManagerMaster会创建BlockManagerInfo来管理元数据信息
BlockManagerMaster:在DAGScheduler对象中,管理元数据信息
BlockManagerSlaveEndpoint:在Executor端,负责接收BlockManagerMaster发送过来的信息
BlockTransferService:传输各个节点的block
MemoryStore、DiskStore
更多Spark相关教程见以下内容:
CentOS 7.0下安装并配置Spark
Ubuntu系统搭建单机Spark注意事项
Spark 1.5、Hadoop 2.7 集群环境搭建
CentOS 6.2(64位)下安装Spark0.8.0详细记录
Spark2.0.2 Hadoop2.6.4全分布式配置详解