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前,否则设置其后

posted @ 2014-03-22 16:37  飞天虎  阅读(4082)  评论(0编辑  收藏  举报