`
shenchunhui
  • 浏览: 147327 次
  • 来自: 杭州
社区版块
存档分类
最新评论

HBASE启动脚本/Shell解析

阅读更多
常用到的HBase启动脚本有:
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 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_HOME/bin/hbase的作用:
最终启动的实现由这个脚本执行
1.可以通过敲入$HBASE_HOME/bin/hbase查看其usage
DBA TOOLS
  shell            run the HBase shell
  hbck             run the hbase 'fsck' tool
  hlog             write-ahead-log analyzer
  hfile            store file analyzer
  zkcli            run the ZooKeeper shell
PROCESS MANAGEMENT
  master           run an HBase HMaster node
  regionserver     run an HBase HRegionServer node
  zookeeper        run a Zookeeper server
  rest             run an HBase REST server
  thrift           run the HBase Thrift server
  thrift2          run the HBase Thrift2 server
  avro             run an HBase Avro server

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

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一个了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/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
两个进阶脚本
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调用的就是这个命令
分享到:
评论
1 楼 bin_1715575332 2013-01-24  
不错的文章!

相关推荐

    shell脚本-大数据

    通过shell命令,我们可以对数据库进行增删查改操作,比如`hbase shell`命令可以启动HBase的命令行界面,进行数据操作。此外,shell脚本还常用于ETL(提取、转换、加载)过程,将数据从不同源抽取出来,经过处理后...

    HBase1.4.13安装步骤

    启动和停止HBase可以使用对应的脚本命令。 转向伪分布式模式,配置变得更加复杂。除了在 `hbase-env.sh` 中设置 `JAVA_HOME` 和其他相关变量外,还要在 `hbase-site.xml` 中指定HBase的数据存储路径(`hbase....

    HBase体系架构与安装

    - 运行`bin/hbase shell`命令,进入交互式Shell环境。 #### 伪分布模式安装 1. **在单机模式基础上继续**: - 继续使用之前的配置文件进行调整。 2. **编辑`hbase-env.sh`增加`HBASE_CLASSPATH`环境变量**: -...

    Apache HBase ™ Reference Guide

    ### Apache HBase™ 参考指南关键知识点解析 #### 一、引言 Apache HBase 是一个分布式的、可扩展的大规模数据存储系统,它基于Google的Bigtable论文设计实现。该参考指南作为HBase的官方文档,为用户提供了一个...

    HBase 官方文档

    - **使用脚本**:介绍如何使用 HBase Shell 脚本来自动化执行常见任务。 - **Shell 技巧**:分享提高 HBase Shell 使用效率的小贴士。 #### 六、HBase 数据模型 - **概念视图**:从逻辑角度描述 HBase 表的结构。 ...

    hive 整合 hbase

    - **启动HBase**:通过执行`start-hbase.sh`脚本来启动HBase服务。 - **创建表**:使用`create`命令创建新表。例如:`create 'h2h',{NAME=>'f1',VERSIONS=>1},{NAME=>'f2',VERSIONS=>1}`。这里创建了一个名为`h2h`的...

    将hdfs上的文件导入hbase的源代码

    3. **编写导入脚本或程序**:使用Java API或者HBase Shell来编写导入脚本。在Cloudera CDH 4.8.1环境下,通常会用Java编程,因为HBase提供了丰富的Java客户端API。 4. **数据批量加载**:使用`put`操作将转换后的...

    hbase中文文档,适合初学者学习

    HBase Shell是HBase提供的命令行工具,用于交互式操作数据库。它支持脚本编写和一些实用技巧,方便用户进行数据管理。 数据模型是理解HBase的核心,包括概念视图(如表、行、列族和单元格)和物理视图,以及版本...

    HBase权威指南中文版+官方文档

    - **重要配置项解析**:重点分析对HBase性能有重大影响的配置项。 - **Bloom Filter**:介绍如何使用Bloom Filter来提高查询效率。 #### 三、HBase升级指南 - **从0.20.x或0.89.x升级到0.90.x**:列出具体的步骤...

    HBase权威指南 中文版

    - **使用脚本**:可以编写shell脚本来执行常见的HBase操作。 - **Shell技巧**:利用shell命令简化数据管理和查询工作。 #### 五、数据模型 - **概念视图**:理解HBase表的逻辑结构。 - **物理视图**:了解HBase内部...

    实验4 HBase_Hive1

    - **启动服务**:使用`start-hbase.sh`脚本启动HBase服务。 - **验证**:通过`hbase shell`命令进入交互式模式,执行简单的CRUD操作来验证是否安装成功。 ##### 2. HBase表操作 - **表创建**:使用`create 'Wuxia',...

    基于Hadoop的ETL处理Shell架构5

    【基于Hadoop的ETL处理Shell架构5】深入解析 在大数据处理领域,ETL(Extract, Transform, Load)是核心环节,它负责从不同数据源抽取数据,进行清洗、转换,然后加载到目标存储中。Hadoop作为分布式计算框架,提供...

    HBase SQL Phoenix

    7. **工具**:可能涉及到了一些与HBase和Phoenix相关的工具,如HBase的管理工具HBase shell,Phoenix的客户端工具,或者性能监控工具。 总的来说,HBase SQL Phoenix的组合提供了一种高效的方式来管理和查询大数据...

    8 HBase数据分析与建模,实战案例剖析.pdf

    在设置好环境变量后,可以通过Grunt shell进入Pig的交互式环境,或者编写Pig Latin脚本并运行。环境变量的配置包括PATH环境变量指向Hadoop的bin目录,以及设置PIG_CLASSPATH环境变量来包含所需的jar文件等。此外,还...

    《大数据平台搭建与配置管理》期中试题试卷及答案.docx

    - **详细解析**:在Shell脚本中定义全局变量最常用的方法是使用`export`命令。通过这种方式定义的变量可以在当前Shell环境及其子进程中访问。例如,`export MY_VARIABLE=value`可以设置名为`MY_VARIABLE`的全局变量...

    hadoop-weather-analysis:该项目将下载世界上大多数国家的天气历史数据,并将数据存储到HDFS中。 将数据放入HDFS后,映射器和化简器作业将针对该数据运行,并将分析结果保存到HBase。 该代码是使用Java和Hbase作为NoSQL数据库在Hadoop 2.8上开发和执行的

    运行shell脚本和python代码以解析网页以获取所有国家/地区代码,并使用国家/地区代码下载所有国家/地区的xml文件。所有XML文件均另存为xml_files / weather_xxx.xml(xxx是国家/地区代码)### ### 2。 将xml文件...

    架构师文集100本.zip

    《架构师文集100本》是一个包含丰富IT知识的压缩包,涵盖了大数据、Shell编程脚本以及架构师相关领域的经典著作。这个资源对于那些渴望深入理解IT架构设计、优化大数据处理流程以及掌握Shell脚本编写技巧的个人来说...

    kafka命令.txt

    - **描述**:启动HBase的交互式Shell环境。 - **应用场景**:用于管理HBase表、执行查询操作等。 3. **启动Redis服务**: ```bash redis-server.exe redis-cli.exe -p 6379 -a 123456 ``` - **描述**:第一...

    hadoop使用

    这包括文件系统管理、用户权限、网络配置、进程管理以及Shell脚本编写等。 2. **Hadoop安装**:安装Hadoop涉及下载源码或二进制包,配置环境变量,设置Hadoop配置文件如`core-site.xml`, `hdfs-site.xml`, `yarn-...

    大数据基础课程设计报告.docx

    7. 通过HBase shell查询HBase中的数据。 **三、实验流程** 1. 使用HDFS的`put`命令将原始数据上传。 2. 编写脚本`sogou-log-extend.sh`,拆分时间字段并添加年、月、日、小时字段。 3. 使用`hadoop fs -put`命令将...

Global site tag (gtag.js) - Google Analytics