@tsing1226
2017-05-24T08:25:45.000000Z
字数 1375
阅读 922
shell
usage="Usage: start-hbase.sh" //脚本用法
bin=`dirname "${BASH_SOURCE-$0}"` //把脚本所在目录赋予bin
bin=`cd "$bin">/dev/null; pwd` //校验bin的正确性
. "$bin"/hbase-config.sh //初始化hbase配置,设置全局环境变量--注2
errCode=$?
if [ $errCode -ne 0 ] //不等于0
then
exit $errCode
fi
if [ "$1" = "autorestart" ]
then
commandToRun="autorestart"
else
commandToRun="start"
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表示没有错误,其他表示有错误
-ne 表示不等于。
-ge大于等于。
2)
Linux 脚本前加“. ”即“点+空格”,脚本执行结束后,脚本中的export命令影响全局环境变量。
3)字符串长度
string="hello"
echo ${#string}
4)提取子字符串
string="runoob is a great site"
echo ${string:1:4}
截取字符串的第一至第四个元素。