Spark local dirs

2019-06-18  本文已影响0人  clive0x

Utils.scala getConfiguredLocalDirs()方法:

1.判断是否是YARN模式 conf.getenv("CONTAINER_ID") != null

conf.getenv("LOCAL_DIRS")

2.Executor环境conf.getenv("SPARK_EXECUTOR_DIRS")

3.conf.getenv("SPARK_LOCAL_DIRS")

4.mesos

5.非YARN或者yarn-client模式:

  conf.get("spark.local.dir", System.getProperty("java.io.tmpdir"))

太多的os env变量,最后才从spark conf拿

DiskBlockManager 中block存储:

假设spark.local.dir设置为/data1/local,/data2/local,/data3/local

则block存储存储目录如下

|/data1/local/blockmgr-UUID|/data2/local/blockmgr-UUID|/data3/local/blockmgr-UUID|

其中/datax/local/blockmgr-UUID是一个Array,下面有子目录,通过spark.diskStore.subDirectories配制数目,默认为64个

子目录名称为两位数字

block按blockid转文件名存储。

如rdd block:

"rdd_" + rddId + "_" + splitIndex

上一篇 下一篇

猜你喜欢

热点阅读