本節書摘來自華章社群《深入了解spark:核心思想與源碼分析》一書中的第3章,第3.5節hadoop相關配置及executor環境變量,作者耿嘉安,更多章節内容可以通路雲栖社群“華章社群”公衆号檢視
3.5 hadoop相關配置及executor環境變量
3.5.1 hadoop相關配置資訊
預設情況下,spark使用hdfs作為分布式檔案系統,是以需要擷取hadoop相關配置資訊的代碼如下。
val hadoopconfiguration = sparkhadooputil.get.newconfiguration(conf)
擷取的配置資訊包括:
将amazon s3檔案系統的accesskeyid和secretaccesskey加載到hadoop的configuration;
将sparkconf中所有以spark.hadoop.開頭的屬性都複制到hadoop的configuration;
将sparkconf的屬性spark.buffer.size複制為hadoop的configuration的配置io.file.buffer.size。
如果指定了spark_yarn_mode屬性,則會使用yarnsparkhadooputil,否則預設為sparkhadooputil。
3.5.2 executor環境變量
對executor的環境變量的處理,參見代碼清單3-28。executorenvs 包含的環境變量将會在7.2.2節中介紹的注冊應用的過程中發送給master,master給worker發送排程後,worker最終使用executorenvs提供的資訊啟動executor。可以通過配置spark.executor.memory指定executor占用的記憶體大小,也可以配置系統變量spark_executor_memory或者spark_mem對其大小進行設定。
代碼清單3-28 executor環境變量的處理