zoukankan      html  css  js  c++  java
  • 02_HBase集群部署

    HBase集群部署 

    HBase是分布式数据库,本身也需要借助zookeeper进行集群节点间的协调(Master, RegionServer), 可以使用HBase自带的zookeeper,也可以使用外部独立部署的zookeeper, 从练习的角度讲,可以使用HBase内部自带的zookeeper

    在开始部署HBase前,要先检查下Hadoop集群上的java和HBase的配套关系

    1)上传安装包到待部署节点,解压并得到安装目录

    以我的为例,安装包上传到3个待部署节点的/usr/local/src/目录,解压后得到HBase安装目录,同时修改安装目录名为hbase-0.98.24

    [/usr/local/src] chmod 755 hbase-0.98.24-hadoop1-bin.tar.gz
    [/usr/local/src] tar -xzvf hbase-0.98.24-hadoop1-bin.tar.gz
    [/usr/local/src] mv hbase-0.98.24-hadoop1   hbase-0.98.24

    2) HBase配置文件修改

    任选1个节点,修改HBase配置文件目录conf下的 hbase-site.xml, regionservers, hbase-env.sh

    hbase-site.xml

     配置参数说明

    *hbase.tmp.dir本地目录上存放的hbase临时数据

    *hbase.rootdir:   HDFS上HBase真正存储数据的根路径(用户表的表结构,用户表对应的各个HFile,  各个RegionServer自己维护的Hlog)

    *hbase.cluster.distributed: HBase是否以集群模式运行

    *hbase.zookeeper.quorum: HBase依赖的zookeeper集群在哪些节点上,填入节点主机名即可

    *hbase.zookeeper.property.dataDir: 本地目录上存储的zookeeper快照

    23 <configuration>
    
     24         <property>
     25                 <name>hbase.tmp.dir</name>
     26                 <value>/usr/local/src/hbase-0.98.24/tmp</value>
     27         </property>
     28         <property>
     29                 <name>hbase.rootdir</name>
     30                 <value>hdfs://master:9000/hbase</value>
     31         </property>
     32         <property>
     33                 <name>hbase.cluster.distributed</name>
     34                 <value>true</value>
     35         </property>
     36         <property>
     37                 <name>hbase.zookeeper.quorum</name>
     38                 <value>master,slave1,slave2</value>
     39         </property>
     40         <property>
     41                 <name>hbase.zookeeper.property.dataDir</name>
     42                 <value>/usr/local/src/hbase-0.98.24/zookeeper</value>
     43         </property>
     44 </configuration>

    hbase-env.sh

    # The java implementation to use.  Java 1.6 required.
    export JAVA_HOME=/usr/local/src/jdk1.6
    export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
    
    
    # Tell HBase whether it should manage it's own instance of Zookeeper or not.
    # 使用HBase自带的zookeeper,  生产环境设置为False,使用外部zk集群
    export HBASE_MANAGES_ZK=true

    regionservers

    哪些节点将作为regionserver, 写入主机名即可,每行一个

    Master也作为了1个regionserver, 即Hbase的主节点,同时也作为Regionserver

    master
    slave1
    slave2

    3) HBase配置文件分发到其他待部署HBase的各个节点

    # scp –rp hbase-site.xml root@slave1:/usr/local/src/hbase-0.98.24/conf
    # scp –rp hbase-env.sh root@slave1:/usr/local/src/hbase-0.98.24/conf
    # scp –rp regionservers root@slave1:/usr/local/src/hbase-0.98.24/conf
    
    # scp –rp hbase-site.xml root@slave2:/usr/local/src/hbase-0.98.24/conf
    # scp –rp hbase-env.sh root@slave2:/usr/local/src/hbase-0.98.24/conf
    # scp –rp regionservers root@slave2:/usr/local/src/hbase-0.98.24/conf

    4)配置所有待部署HBase的各个节点的环境变量

    /etc/profile文件增加如下内容

    export HBASE_HOME=/usr/local/src/hbase-0.98.24/
    export HBASE_CLASSPATH=$HBASE_HOME/conf
    export HBASE_LOG_DIR=$HBASE_HOME/logs
    export PATH=$PATH:$HBASE_HOME/bin

    通过source命令,让环境变量生效

    # source /etc/profile

    5)检查待部署Hbase的各个节点,HDFS是否正常启动,zk是否关闭

    HBase的数据存储,依赖于HDFS,因此要先保证各个节点上的HDFS进程已经正常启动, JPS命令在各个节点上进行查询即可

    由于配置是使用HBase自带的zk集群,因此先通过zkServer.sh stop将各个节点上的zookeeper进行关闭

    6)只需要在主节点Master上启动HBase,从节点RegionServer自动被拉起

    进入HBase安装目录下的bin目录,执行start-hbase.sh启动整个集群, 执行stop-hbase.sh停止整个集群

    # ./start-hbase.sh
    # ./stop-hbase.sh

    7)集群启动后检查各个节点的HBase进程,部署完成

    主节点:同时具有Master和RegionServer角色,并且启动了HBase自带zk

     

    从节点:具RegionServer角色,并且启动了HBase自带zk

     

  • 相关阅读:
    使用 rabbitmq 的场景?
    什么是 Spring Cloud Bus?我们需要它吗?
    使用 Spring Cloud 有什么优势?
    我们如何监视所有 Spring Boot 微服务?
    什么是 YAML?
    如何集成 Spring Boot 和 ActiveMQ?
    什么是 JavaConfig?
    数据字典属于哪一个用户的?
    怎么对命令进行取别名?
    使用什么命令查看网络是否连通?
  • 原文地址:https://www.cnblogs.com/shay-zhangjin/p/7823819.html
Copyright © 2011-2022 走看看