./start-all.sh中主要做的三件事件: ...获取到hadoop的bin目录 1.执行$bin/../libexec/hadoop-config.sh脚本 A.获取当前脚本及其整个目录this="${BASH_SOURCE-$0}" B.获取到目录,不包含此目录下的脚本 common_bin=$(cd -P -- "$(dirname -- "$this")" && pwd -P) C.获取到当前脚本 及 脚本包含整个目录 script="$(basename -- "$this")" this="$common_bin/$script" D.得到hadoop安装目录 export HADOOP_PREFIX=`dirname "$this"`/.. export HADOOP_HOME=${HADOOP_PREFIX} E.获取安装目录下的conf目录 HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-$HADOOP_PREFIX/$DEFAULT_CONF_DIR}" 2.启动dfs ..传二个参数--config 和 hadoop的conf目录 (这里发现脚本里调用脚本是启动一 个进程, 除非使用. 来调用不会) A.获取到当前脚本的目录,即hadoop的bin目录 bin=`dirname "$0"` bin=`cd "$bin"; pwd` B.再次调用hadoop目录下的libexec/hadoop-config.sh脚本 ..start-all给start-dfs传过来的参数无法传到hadoop-config.sh脚本中 (重启进程无法传参数) 也没做什么,基本上和start-all中调用hadoop-config一样,获取hadoop安装目录 及conf目录 C.发现给start-dfs传过来的参数,调用. "$bin"/../libexec/hadoop-config.sh完后 参数都得不到了; 调用此脚本不是重启一个进程 [b]D[/b].接下来重点了,调用三个脚本来启动name结点及data结点 D1<hadoop-daemon>.给hadoop-daemon.sh传了几个参数,分别为如下: --config /usr/local/hadoop/libexec/../conf start namenode D2<hadoop-daemon>. . "$bin"/../libexec/hadoop-config.sh时候会把 start-dfs传过来的参数传进去的,调用此脚本也就是 export一些参数 D3<hadoop-daemon>.startStop=start command=namenode export HADOOP_IDENT_STRING="$USER" #root export HADOOP_LOG_DIR="$HADOOP_HOME/logs" mkdir -p "$HADOOP_LOG_DIR" #hadoop安装目录下 export HADOOP_LOGFILE=hadoop-$HADOOP_IDENT_STRING- $command-$HOSTNAME.log 120 export HADOOP_ROOT_LOGGER="INFO,DRFA" mkdir -p "$HADOOP_PID_DIR" #/tmp目录 log=$HADOOP_LOG_DIR/hadoop-$HADOOP_IDENT_STRING- $command-$HOSTNAME.out pid=$HADOOP_PID_DIR/hadoop-$HADOOP_IDENT_STRING- $command.pid [b]小知识点:kill -0 PID 向某一进程发送一个无效的信号,如果该进程存在(能够接收信号),echo $?为0,否则为1,已证明此进程是否存在[/b] D4<hadoop-daemon>.接着调用hadoop脚本了, 1.判断$HADOOP_HOME_WARN_SUPPRESS是否有值,如果没有 提示也就是启动的时候可以见到这个提示 调用hadoop-config.sh脚本做些初始化CONF目录等 2.判断是否在WIN下运行的, case "`uname`" in CYGWIN*) cygwin=true;; esac 3.判断JAVA_HOME是否设置,并把/share/hadoop/此目录下的 所有jar文件添加到CLASSPATH城 for f in $HADOOP_PREFIX/share/hadoop/lib/*.jar; do CLASSPATH=${CLASSPATH}:$f; done //linux unset 命令 功能说明:删除变量或函数。 参 数: -f 仅删除函数。 -v 仅删除变量。 root@debian:/usr/local/hadoop/share/hadoop# set 查看当前环境变量 4.设置namenode结点的类 org.apache.hadoop.hdfs.server.namenode.NameNode //2.启动mapredure
hadoop的namenode Shell执行启动过程
猜你喜欢
转载自houshangxiao.iteye.com/blog/1885199
今日推荐
周排行