Hadoop 2.2.0啟動腳本——libexec/hadoop-config.sh


start-all.sh調用start-dfs.sh和start-yarn.sh

start-dfs.sh和start-yarn.sh都調用libexec/hadoop-config.sh初始化環境配置

一. libexec/hadoop-config.sh

1. 初始化庫文件環境變量,包括share/hadoop/*和lib/native,share目錄是jar庫文件,lib/native目錄下是C/C++庫文件

2. 如果使用--config <config-dir>參數,則設置<config-dir>為自定義配置文件目錄HADOOP_CONF_DIR

3. 檢測conf/hadoop-env.sh是否存在,存在則設置conf為默認配置文件目錄DEFAULT_CONF_DIR,不存在則設置etc/hadoop為默認配置文件目錄

4. 設置$HADOOP_CONF_DIR為配置文件目錄,不存在則設置$HADOOP_HOME/$DEFAULT_CONF_DIR為配置文件目錄

(通過export HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-$HADOOP_PREFIX/$DEFAULT_CONF_DIR}"設置)

5. HADOOP_SLAVES和HADOOP_SLAVE_NAMES,要么設置兩項,要么都不設置;獲取--hosts或--hostnames參數來設置兩個變量 

6. 加載$HADOOP_CONF_DIR/hadoop-env.sh 

7. 檢測IPv6,及HADOOP是否允許IPv6

8. 設置MALLOC_ARENA_MAX,glibc虛擬內存使用相關?

9. 檢測JAVA_HOME

10. 設置JAVA_HEAP_MAX默認值(-Xmx1000m),如果設置HADOOP_HEAPSIZE(數字,不帶m),則設-Xms${HADOOP_HEAPSIZE}m

11. 設置CLASSPATH為$HADOOP_CONF_DIR,

$HADOOP_COMMON_DIR(share/hadoop/common)————如果存在webapps目錄,

$HADOOP_COMMON_LIB_JARS_DIR/*(share/hadoop/common/lib/*)

$HADOOP_COMMON_DIR/*(share/hadoop/common/*)

12. 設置LOG_DIR和LOG_FILE,設置POLICY_FILE

13. 設置JAVA_LIBRARY_PATH為lib/native

14. 設置TOOL_PATH為share/hadoop/tools/lib/*

15. 設置-Dhadoop.log.dir=$HADOOP_LOG_DIR 

-Dhadoop.log.file=$HADOOP_LOGFILE 

-Dhadoop.home.dir=$HADOOP_PREFIX 

-Dhadoop.id.str=$HADOOP_IDENT_STRING

-Dhadoop.root.logger=${HADOOP_ROOT_LOGGER:-INFO,console}

-Djava.library.path=$JAVA_LIBRARY_PATH 

-Dhadoop.policy.file=$HADOOP_POLICYFILE 

-Djava.net.preferIPv4Stack=true 

設置LD_LIBRARY_PATH,export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_LIBRARY_PATH 

16. 設置HADOOP_HDFS_HOME為etc/hadoop/hdfs

設置CLASSPATH,同common

17. YARN/MAPRED同上

18. 檢測HADOOP_CLASSPATH,如果設置HADOOP_USER_CLASSPATH_FIRST,則HADOOP_CLASSPATH設置在CLASSPATH前,否則設置其后


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM