/usr/lib/Hadoop-hdfs/bin/hdfs
#1.加载/usr/lib/hadoop/libexec/hdfs-config.sh,但好像没啥作用
#2.根据启动参数指定java的启动mainclass:
if [ "$COMMAND" = "namenode" ] ; then
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_OPTS"
#3.启动Java程序
exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"
最后介绍几个配置的小例子。
1.如何指定hadoop的log目录:
从启动脚本中看几个配置的优先级排序是hadoop-env.sh>hadoop-config.sh>/etc/default/hadoop,因此我们如果想指定hadoop的log目录只需在hadoop-env.sh中添加一行:
export HADOOP_LOG_DIR=xxxxx
2.如何添加自己的jar包到hadoop中被namenode,datanode使用
export HADOOP_CLASSPATH=xxxxx
3.如何单独设定namenode的java heapsize。
比如想设置namenode10G,datanode1G,这个就有点意思了。如果直接指定HADOOP_HEAPSIZE那么此参数会作用于namenode,datanode,而单独在namenode的参数中指定也会有点小问题哦,不过基本是可以使用的。
总之,由于hadoop的启动脚本极其多而且琐碎,再加上hbase hive的启动脚本都是类似的结构,导致在添加修改一些配置时会产生很多莫名的问题,大家也可以在使用的过程中细细体会啦。