首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hadoop的namenode Shell施行启动过程

2013-07-09 
hadoop的namenodeShell执行启动过程./start-all.sh中主要做的三件事件:...获取到hadoop的bin目录1.执行$bi

hadoop的namenode Shell执行启动过程

./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

热点排行