1. 脚本使用小结
1.开启集群

start-hbase.sh

2.关闭集群

stop-hbase.sh

3.开启/关闭【所有】的regionserver、zookeeper

hbase-daemons.sh start/stop regionserver/zookeeper

4.开启/关闭【单个】的regionserver、zookeeper

hbase-daemon.sh start/stop regionserver/zookeeper

5.开启/关闭master

hbase-daemon.sh start/stop master

是否成为active master取决于当前是否有active master

2. 两个进阶脚本
6.rolling-restart.sh 可以用来挨个滚动重启
7.graceful_stop.sh move服务器上的所有region后,再stop/restart该服务器,可以用来进行版本的热升级

几个细节:
1。hbase-daemon.sh start master 与 hbase-daemon.sh start master --backup,这2个命令的作用一样的,是否成为backup或active是由master的内部逻辑来控制的
2。stop-hbase.sh不会调用hbase-daemons.sh stop regionserver 来关闭regionserver,但是会调用hbase-daemons.sh stop zookeeper/master-backup来关闭zk和backup master,关闭regionserver实际调用的是hbaseAdmin的shutdown接口
3。通过$HBASE_HOME/bin/hbase stop master关闭的是【整个集群】而非单个master,只关闭【单个】master的话使用$HBASE_HOME/bin/hbase-daemon.sh stop master
4。$HBASE_HOME/bin/hbase stop regionserver/zookeeper 不能这么调,调了也会出错,也没有路径会调用这个命令,但是可以通过$HBASE_HOME/bin/hbase start regionserver/zookeeper 来启动rs或者zk,hbase-daemon.sh调用的就是这个命令

start-hbase.sh的流程如下:
1.运行hbase-config.sh(作用后面解释)
2.解析参数(0.96版本及以后才可以带唯一参数autorestart,作用就是重启)
3.调用hbase-daemon.sh来启动master;调用hbase-daemons.sh来启动regionserver zookeeper master-backup

hbase-config.sh的作用:
装载相关配置,如HBASE_HOME目录,conf目录,regionserver机器列表,JAVA_HOME目录等,它会调用$HBASE_HOME/conf/hbase-env.sh

hbase-env.sh的作用:
主要是配置JVM及其GC参数,还可以配置log目录及参数,配置是否需要hbase管理ZK,配置进程id目录等

hbase-daemons.sh的作用:
根据需要启动的进程,
如为zookeeper,则调用zookeepers.sh
如为regionserver,则调用regionservers.sh
如为master-backup,则调用master-backup.sh

zookeepers.sh的作用:
如果hbase-env.sh中的HBASE_MANAGES_ZK" = "true",那么通过ZKServerTool这个类解析xml配置文件,获取ZK节点列表(即hbase.zookeeper.quorum的配置值),然后通过SSH向这些节点发送远程命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop zookeeper

regionservers.sh的作用:
与zookeepers.sh类似,通过${HBASE_CONF_DIR}/regionservers配置文件,获取regionserver机器列表,然后SSH向这些机器发送远程命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop regionserver

master-backup.sh的作用:
通过${HBASE_CONF_DIR}/backup-masters这个配置文件,获取backup-masters机器列表(默认配置中,这个配置文件并不存在,所以不会启动backup-master),然后SSH向这些机器发送远程命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop master --backup

hbase-daemon.sh的作用:
无论是zookeepers.sh还是regionservers.sh或是master-backup.sh,最终都会调用本地的hbase-daemon.sh,其执行过程如下:
1.运行hbase-config.sh,装载各种配置(java环境、log配置、进程ID目录等)
2.如果是start命令?
滚动out输出文件,滚动gc日志文件,日志文件中输出启动时间+ulimit -a信息,如
“Mon Nov 26 10:31:42 CST 2012 Starting master on dwxx.yy.taobao”
"..open files (-n) 65536.."
3.调用$HBASE_HOME/bin/hbase start master/regionserver/zookeeper
4.执行wait,等待3中开启的进程结束
5.执行cleanZNode,将regionserver在zk上登记的节点删除,这样做的目的是:在regionserver进程意外退出的情况下,可以免去3分钟的ZK心跳超时等待,直接由master进行宕机恢复
6.如果是stop命令?
根据进程ID,检查进程是否存在;调用kill命令,然后等待到进程不存在为止
7.如果是restart命令?
调用stop后,再调用start。。。

HBase参数解析:
2.bin/hbase shell,这个就是常用的shell工具,运维常用的DDL和DML都会通过此进行,其具体实现(对hbase的调用)是用ruby写的

3.bin/hbase hbck, 运维常用工具,检查集群的数据一致性状态,其执行是直接调用org.apache.hadoop.hbase.util.HBaseFsck中的main函数

4.bin/hbase hlog, log分析工具,其执行是直接调用org.apache.hadoop.hbase.regionserver.wal.HLogPrettyPrinter中的main函数

5.bin/hbase hfile, hfile分析工具,其执行是直接调用org.apache.hadoop.hbase.io.hfile.HFile中的main函数

6.bin/hbase zkcli,查看/管理ZK的shell工具,很实用,经常用,比如你可以通过(get /IP/master)其得知当前的active master,可以通过(get /IP/root-region-server)得知当前root region所在的server,你也可以在测试中通过(delete /IP/rs/dwxx.yy.taobao),模拟regionserver与ZK断开连接,
其执行则是调用了org.apache.zookeeper.ZooKeeperMain的main函数

7.bin/hbase classpath 打印classpath

8.bin/hbase version 打印hbase版本信息

7.回归到刚才hbase-daemon.sh对此脚本的调用为:
$HBASE_HOME/bin/hbase start master/regionserver/zookeeper
其执行则直接调用
org.apache.hadoop.hbase.master.HMaster
org.apache.hadoop.hbase.regionserver.HRegionServer
org.apache.hadoop.hbase.zookeeper.HQuorumPeer
的main函数,而这些main函数就是了new一个了Runnable的HMaster/HRegionServer/QuorumPeer,在不停的Running...

HBase脚本命令的更多相关文章

  1. Hbase记录-shell脚本嵌入hbase shell命令

    第一种方式:hbase shell test.txt test.txt:list 第二种方式:<<EOF重定向输入 我们经常在shell脚本程序中用<<EOF重定向输入,将我们 ...

  2. linux 基础 shell脚本命令

    #########shell脚本命令#### 1.diff diff file file1 ####比较两个文件的不同 -c ####显示周围的行 -u ####按照一格式统一输出生成补丁 -r ## ...

  3. 【android Studio】零git知识、零脚本命令,即刻体验git版本管理魅力!

    git的优点就不去多说了.阻碍咱新手体验它的唯一问题就是门槛太高,脚本看着像天书, 本文主要阐述的,就是如何在android studio上,也能像tfs那样,非常简单的操作,就能使用git进行版本管 ...

  4. Hbase Shell命令

    1 启动HBase shell 2 HBase shell 命令 3 我们将以“一个学生成绩表”的例子来详细介绍常用的 HBase 命令及其使用方法. 这里 grad 对于表来说是一个列,course ...

  5. 脚本命令高级Bash脚本编程指南(31):数学计算命令

    题记:写这篇博客要主是加深自己对脚本命令的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. 高等Bash脚本编程指南(31):数学盘算命令 成于坚持,败于止步 操作数字 factor ...

  6. 浅析busybox-1.12.0中ash的脚本命令局限性

    浅析busybox-1.12.0中ash的脚本命令局限性 LUTHER= 表示将LUTHER清空,将其变为null echo ${LUTHER:-111}如果执行该句之前LUTHER变量不存在,那么显 ...

  7. Oralce 导出脚本命令,定时执行

    原文:Oralce 导出脚本命令,定时执行 @echo off @echo ================================================ @echo  window ...

  8. HBase shell 命令介绍

    HBase shell是HBase的一套命令行工具,类似传统数据中的sql概念,可以使用shell命令来查询HBase中数据的详细情况.安装完HBase之后,如果配置了HBase的环境变量,只要在sh ...

  9. HBASE SHELL 命令使用

    HBASE SHELL命令的使用 在hbase shell客户端有许多的操作命令,今天回顾并且总结一二,希望和广大读者共同进步,并且悉心聆听你们的意见.在此的hbase版本是:HBase 1.2.0- ...

随机推荐

  1. 递归和非递归分别实现求n的阶乘

    思路:举例求6的阶乘,6*5*4*3*2*1.可以将5开始看成另一个整型变量n,用一个循环每次将n的值减少1,.而递归也是如此,每次调用函数的时候将变量减一就可以. 方法一:非递归 //非递归: #i ...

  2. spring中ApplicationContextAware接口描述

    项目中使用了大量的工厂类,采用了简单工厂模式: 通过该工厂类可以获取指定的处理器bean,这些处理器bean我们是从spring容器中获取的,如何获取,是通过实现ApplicationContextA ...

  3. VMware虚拟机安装红帽系统无法上网解决办法(转)

    原文地址:https://www.aliyun.com/jiaocheng/146779.html 1.最近在vmware安装redhat 7.4虚拟机后无法上网,首先按照下文配置,能ping同宿主机 ...

  4. Excel文件转为其他格式文件

    引用:Spire.XLS 是一个 Excel 文件的读写库,无需安装office,使用起来也挺方便的.Spire还有一些其他的库(Spire.Doc,Spire.Pdf……) 说明:Spire.XLS ...

  5. C语言中基本的数据类型

    一般来说,一个C的工程中一定要做一些这方面的工作,因为你会涉及到跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以让你最有效的维护你的代码.为了用户的方便,C99标准的C语言硬件为我 ...

  6. GTP+SDI工程播出部分思路整理(2)

    GTP+SDI工程播出部分思路整理(2) 以同样的方法来分析tx_video_a_c_in信号: SDI核中tx_video_a_c_in信号连接情况如下所示 .tx_video_a_c_in     ...

  7. MHA 报错:There is no alive slave. We can't do failover

    dba http://blog.csdn.net/zengxuewen2045/article/details/51524880 关于这个错误:   1 2 3 4 Mon Feb 13 10:29: ...

  8. c# 几种常见的弹框方法

    1.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('第一行'); ...

  9. Maven Docker部署

    镜像构建方式 docker-maven-plugin插件构建docker镜像有两种方式: 1. 指定参数,由docker-maven-plugin插件根据这些参数来制作镜像: 2. 指定Dockerf ...

  10. axios 上传图片

    let data = new FormData(); for (var i = 0; i < files.length; i++) { let file = files.item(i); dat ...