【hadoop二次开发】查看NameNode的启动脚本

002-hadoop二次开发-NameNode启动流程-NameNode启动流程

NameNode是什么,有哪些职责

首先namenode是一个服务中心,管理文件系统命名空间的,比如当前文件名叫什么,以及管理的元数据,blockID,block大小,块池列表,在哪些机器上
在WEB-UI界面50070端口,Utilities下Browse Directory查看hdfs文件信息。
当在客户端输入hadoop fs -ls /命令后,通过rpc发送给namenode,执行操作,返回结果到客户端上,那么namenode还有协调客户端进行访问的操作

怎么管理元数据信息?
在hadoop的sbin目录下,输入find / -name "edits_*"查找元数据文件
在当前/dfs/nn/current/edits_000000000000000000-000000000000008888,记录了操作流程,增删该
还有一个fsimage镜像文件,包括一些文件映射,文件属性等信息。
两者组成了元数据信息。namenode对两者进行管理。

总结
1、维护命名空间:文件明细,文件大小,元数据信息
2、对外提供服务(对client端提供服务操作)
3、协调客户端对文件的访问
4、保存数据块在哪台机器的信息(datanode)

NameNode如何启动的(通过脚本)

在hadoop安装包(可以是apache的也可以使cdh的等)下sbin目录下有个hadoop-daemon.sh脚本文件。
当执行hadoop-daemon.sh start/stop namenode命令时,匹配到下面的脚本命令,就开始启动了

case $command in
      namenode|secondarynamenode|datanode|journalnode|dfs|dfsadmin|fsck|balancer|zkfc)
        if [ -z "$HADOOP_HDFS_HOME" ]; then
          hdfsScript="$HADOOP_PREFIX"/bin/hdfs
        else
          hdfsScript="$HADOOP_HDFS_HOME"/bin/hdfs
        fi
        nohup nice -n $HADOOP_NICENESS $hdfsScript --config $HADOOP_CONF_DIR $command "$@" > "$log"
2>&1 < /dev/null &
      ;;
      (*)
        nohup nice -n $HADOOP_NICENESS $hadoopScript --config $HADOOP_CONF_DIR $command "$@" > "$log
" 2>&1 < /dev/null &
      ;;
    esac

执行到if-else脚本就会转到hdfs文件,在bin目录下
匹配到namenode执行命令

133 if [ "$COMMAND" = "namenode" ] ; then
134   CLASS='org.apache.hadoop.hdfs.server.namenode.NameNode'
135   # Set SENTRY_HOME if possible and add Sentry plugin jars to classpath
136   if [[ -z "$SENTRY_HOME" ]]
137   then
138     # HADOOP_HDFS_HOME should have been set by hadoop-config.sh
139     if [[ -d ${HADOOP_HDFS_HOME}/../sentry ]]
140     then
141       export SENTRY_HOME=`readlink -m ${HADOOP_HDFS_HOME}/../sentry`
142     fi
143   fi
144   if [[ -n "$SENTRY_HOME" ]]
145   then
146     for f in ${SENTRY_HOME}/lib/plugins/*.jar; do
147      CLASSPATH=${CLASSPATH}:${f}
148     done
149   fi
150   HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_OPTS"
151 elif [ "$COMMAND" = "zkfc" ] ; then

通过org.apache.hadoop.hdfs.server.namenode.NameNode进行启动。
下一篇来看进入org.apache.hadoop.hdfs.server.namenode.NameNode的源码执行过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值