Hadoop学习笔记(一)HBase脚本分析(一)start-hbase.sh
HBase 脚本流程:
- usage="Usage: start-hbase.sh"
- bin=`dirname "${BASH_SOURCE-$0}"` //把脚本所在目录赋予bin
- bin=`cd "$bin">/dev/null; pwd` //校验bin的正确性
- . "$bin"/hbase-config.sh //初始化hbase配置,设置全局环境变量--注2
- # start hbase daemons
- errCode=$?
- if [ $errCode -ne 0 ]
- then
- exit $errCode
- fi
- distMode=`$bin/hbase --config "$HBASE_CONF_DIR" org.apache.hadoop.hbase.util.HBaseConfTool hbase.cluster.distributed`
- //hbase.cluster.distributed Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。默认:false
- if [ "$distMode" == 'false' ]
- then
- "$bin"/hbase-daemon.sh start master //包装hbase master,regionserver,zookeeper等服务从后台启动
- else
- "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" start zookeeper
- "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" start master
- "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
- --hosts "${HBASE_REGIONSERVERS}" start regionserver
- "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
- --hosts "${HBASE_BACKUP_MASTERS}" start master-backup
- fi
注:
1)
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
2)
Linux 脚本前加“. ”即“点+空格”,脚本执行结束后,脚本中的export命令影响全局环境变量。