Hadoop学习笔记(一)HBase脚本分析(一)start-hbase.sh

HBase 脚本流程:

  1. usage="Usage: start-hbase.sh"  
  2.   
  3. bin=`dirname "${BASH_SOURCE-$0}"`   //把脚本所在目录赋予bin  
  4. bin=`cd "$bin">/dev/null; pwd`      //校验bin的正确性  
  5.   
  6. "$bin"/hbase-config.sh            //初始化hbase配置,设置全局环境变量--注2  
  7.   
  8. # start hbase daemons   
  9. errCode=$?                     
  10.   
  11. if [ $errCode -ne 0 ]  
  12. then  
  13.   exit $errCode  
  14. fi  
  15.   
  16. distMode=`$bin/hbase --config "$HBASE_CONF_DIR" org.apache.hadoop.hbase.util.HBaseConfTool hbase.cluster.distributed`  
  17. //hbase.cluster.distributed  Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。默认:false  
  18.   
  19. if [ "$distMode" == 'false' ]  
  20. then  
  21.   "$bin"/hbase-daemon.sh start master    //包装hbase master,regionserver,zookeeper等服务从后台启动  
  22. else  
  23.   "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" start zookeeper  
  24.   "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" start master  
  25.   "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \  
  26.     --hosts "${HBASE_REGIONSERVERS}" start regionserver  
  27.   "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \  
  28.     --hosts "${HBASE_BACKUP_MASTERS}" start master-backup  
  29. fi  

注:


1)
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

2)
Linux 脚本前加“.   ”即“点+空格”,脚本执行结束后,脚本中的export命令影响全局环境变量。