zoukankan      html  css  js  c++  java
  • HBase Shell脚本命令

    1、启动Hbase整个集群:
    $HBASE_HOME/bin/start-hbase.sh
    bin/start-hbase.sh
    前者在服务器任意位置执行都ok,后者必须在安装路径下执行才有效,其实$HBASE_HOME的作用就是调用Hbase的安装路径

    2、停止Hbase整个集群:
    $HBASE_HOME/bin/stop-hbase.sh
    bin/stop-hbase.sh
    前者在服务器任意位置执行都ok,后者必须在安装路径下执行才有效

    3、启动或停止,所有的regionserver或zookeeper或backup-master :
    $HBASE_HOME/bin/hbase-daemons.sh
    bin/hbase-daemons.sh
    前者在服务器任意位置执行都ok,后者必须在安装路径下执行才有效

    4、启动或停止,单个master或regionserver或zookeeper :
    $HBASE_HOME/bin/hbase-daemon.sh
    bin/hbase-daemon.sh
    前者在服务器任意位置执行都ok,后者必须在安装路径下执行才有效

    5、启动hbase REST服务后就可以通过对uri: http://localhost:60050/api/ 的通用REST操作(GET/POST/PUT/DELETE)实现对hbase的REST形式数据操作:
    $HBASE_HOME/bin/bin/hbase rest start
    bin/hbase rest start
    前者在服务器任意位置执行都ok,后者必须在安装路径下执行才有效

    6、进入shell命令模式:
    $HBASE_HOME/bin/hbase shell

    7、HBase的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:

    8、脚本之间的调用关系:

    (1)、start-hbase.sh流程:
    a.运行hbase-config.sh(hbase-config.sh的作用是装载相关配置,如hbase_home目录,conf目录,regionserver机器列表,java_home目录等,他会调用$HBASE_HOME/conf/hbase-env.sh)
    b.解析参数(0.96后的版本可以带唯一参数autorestart(重启))
    c.调用hbase-daemon.sh来启动master;调用hbase-daemon.sh来启动regionserver、zookeeper、master-backup

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

    10、hbase-daemon.sh的作用:
    根据需要启动的进程,eg:为zookeeper,则调用zookeepers.sh;为regionserver,则调用regionserver.sh;为master-backup,则调用master-backup.sh

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

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

    13、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

    14、hbase-daemin.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

    15、$HBASE_HOME/bin/hbase的作用:
    (1)、可以通过$HBASE_HOME/bin/hbase查看其usage


    (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 /hbase-tianwu-94/master)其得知当前的active master,可以通过(get /hbase-tianwu-94/root-region-server)得知当前root region所在的server,你也可以在测试中通过(delete /hbase-tianwu-94/rs/dwxx.yy.taobao),模拟regionserver与ZK断开连接,其执行则是调用了org.apache.zookeeper.ZooKeeperMain的main函数
    (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一个了RunnableHMaster/HRegionServer/QuorumPeer,在不停的Running
    (8)、bin/hbase classpath 打印classpath
    (9)、bin/hbase version 打印hbase版本信息
    (10)、bin/hbase CLASSNAME, 这个很实用,所有实现了main函数的类都可以通过这个脚本来运行,比如前面的hlog hfile hbck工具,实质是对这个接口的一个快捷调用,而其他未提供快捷方式的class我们也可以用这个接口调用,如Region merge 调用:$HBASE_HOME/bin/hbase/org.apache.hadoop.hbase.util.Merge

    16、注意:
    (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调用的就是这个命令

  • 相关阅读:
    grep在一个特定的文件搜索文件夹keyword
    Mysql HA
    通过wmi获取本地硬件信息的一些疑问。
    nginx+tomcat 架构 HttpServletRequest.getScheme()获取正确的协议
    mybatis配置log4j控制台打印SQL语句
    mybatis使用${}拼接sql出错??
    【MySQL】JDBC连接MySQL的一些问题以及解决办法
    mybatis 嵌套查询子查询column传多个参数描述
    关于一些对location认识的误区
    Nginx+lua学习
  • 原文地址:https://www.cnblogs.com/guo-up/p/8385796.html
Copyright ? 2011-2022 开发猿


http://www.vxiaotou.com