hbase安装目录解析

   Hbase深入学习(三) hbase安装目录解析 

  Hbase的安装目录包含以下子目录和文件,一一说来,

  -rw-r--r-- 1yj70978 retailfi    1358 Aug 14 01:46README.txt

  每一部电影里都有个胖子,每一个项目中也一样会有一个版权申明和简易介绍的文件,这个就是了,它给出了8个可以供我们学习hbase的网站,

  1.

  2.

  3.

  4.

  5.

  6.

  7.

  8.

  -rw-r--r-- 1yj70978 retailfi     897 Aug 14 01:46NOTICE.txt

  -rw-r--r-- 1yj70978 retailfi   11358 Aug 14 01:46LICENSE.txt

  -rw-r--r-- 1yj70978 retailfi  357566 Aug 14 01:46CHANGES.txt

  -rw-r--r-- 1yj70978 retailfi   94308 Aug 14 01:46pom.xml

  Maven的依赖定义文件。

  drwxr-xr-x 9yj70978 retailfi    4096 Aug 14 01:46 src

  saveVersion.sh会生成一个文件package-info.java。

  drwxr-xr-x 3yj70978 retailfi    4096 Aug 14 01:47security

  drwxr-xr-x 7yj70978 retailfi    4096 Aug 14 01:47hbase-webapps

  -rw-r--r-- 1yj70978 retailfi 2548044 Aug 14 01:47 hbase-0.94.11-tests.jar

  -rw-r--r-- 1yj70978 retailfi 5262880 Aug 14 01:47 hbase-0.94.11.jar

  drwxr-xr-x 8yj70978 retailfi    4096 Aug 14 01:47docs

  drwxr-xr-x 2yj70978 retailfi    4096 Aug 14 01:47sbin

  update-hbase-env.sh

  drwxr-xr-x 4yj70978 retailfi    4096 Aug 14 01:47 lib

  drwxr-xr-x 2yj70978 retailfi    4096 Aug 26 03:26conf

  drwxr-xr-x 3yj70978 retailfi    4096 Aug 26 03:33 bin

  1.$HBASE_HOME/bin/start-hbase.sh 
启动整个集群 

2.$HBASE_HOME/bin/stop-hbase.sh 
停止整个集群 

3.$HBASE_HOME/bin/hbase-daemons.sh 
启动或停止,所有的regionserver或zookeeper或backup-master 

4.$HBASE_HOME/bin/hbase-daemon.sh 
启动或停止,单个master或regionserver或zookeeper 

以start-hbase.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 ondwxx.yy.taobao” 
"..openfiles                     (-n) 65536.." 
3.调用$HBASE_HOME/bin/hbase startmaster/regionserver/zookeeper 
4.执行wait,等待3中开启的进程结束 
5.执行cleanZNode,将regionserver在zk上登记的节点删除,这样做的目的是:在regionserver进程意外退出的情况下,可以免去3分钟的ZK心跳超时等待,直接由master进行宕机恢复 
6.如果是stop命令? 
根据进程ID,检查进程是否存在;调用kill命令,然后等待到进程不存在为止 
7.如果是restart命令? 
调用stop后,再调用start。。。 

$HBASE_HOME/bin/hbase的作用: 
最终启动的实现由这个脚本执行 
1.可以通过敲入$HBASE_HOME/bin/hbase查看其usage 
DBA TOOLS 
 shell            run theHBase shell 
 hbck            run the hbase 'fsck' tool 
 hlog            write-ahead-log analyzer 
 hfile            storefile analyzer 
 zkcli            run theZooKeeper shell 
PROCESS MANAGEMENT 
 master           run an HBaseHMaster node 
  regionserver     runan HBase HRegionServer node 
 zookeeper        run a Zookeeper server 
 rest            run an HBase REST server 
 thrift           run theHBase Thrift server 
 thrift2          run the HBaseThrift2 server 
 avro            run an HBase Avro server 

PACKAGE MANAGEMENT 
 classpath        dump hbase CLASSPATH 
 version          print the version 
or 
 CLASSNAME        run the class namedCLASSNAME 

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)其得知当前的activemaster,可以通过(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 startmaster/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... 

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 


脚本使用小结: 
1.开启集群,start-hbase.sh 
2.关闭集群,stop-hbase.sh 
3.开启/关闭所有的regionserver、zookeeper,hbase-daemons.sh start/stopregionserver/zookeeper 
4.开启/关闭单个regionserver、zookeeper,hbase-daemon.sh start/stop regionserver/zookeeper 
5.开启/关闭master hbase-daemon.sh start/stop master, 是否成为active master取决于当前是否有active master 
两个进阶脚本 
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调用的就是这个命令

  drwxr-xr-x 2yj70978 retailfi    4096 Aug 26 03:33logs

  drwxr-xr-x 3yj70978 retailfi    4096 Aug 26 03:34zookeeper

  drwxr-xr-x 8yj70978 retailfi    4096 Aug 26 03:59hbase

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值