Hbase安装部署

一、Hbase简介


HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问,是Google的BigTable的开源实现。HBase的目标是存储并处理大型的数据,更具体地说仅用普通的硬件配置,能够处理成千上万的行和列所组成的大型数据库。
HBase是一个开源的、分布式的、多版本的、面向列的存储模型。可以直接使用本地文件系统也可使用Hadoop的HDFS文件存储系统。为了提高数据的可靠性和系统的健壮性,并且发挥HBase处理大型数据的能力,还是使用HDFS作为文件存储系统更佳。另外,HBase存储的是松散型数据,具体来说,HBase存储的数据介于映射(key/value)和关系型数据之间。如下图所示,HBase存储的数据从逻辑上看就是一张很大的表,并且它的数据列可以根据需要动态增加。每一个cell中的数据又可以有多个版本(通过时间戳来区别),从下图来看,HBase还具有“向下提供存储,向上提供运算”的特点。

二、Hbase安装概述


  1. 配置hosts,确保涉及的主机名均可以解析为ip。
    若已经安装部署好hadoop,则此步已经完成。
  2. 编辑hbase-env.xml。
  3. 编辑hbase-site.xml。
  4. 编辑regionservers文件。
  5. 把Hbase复制到其它节点。
  6. 启动Hbase。
  7. 验证启动。

三、安装步骤


  1. 配置hosts,确保涉及的主机名均可以解析为ip。
    [hadoop@master ~]$ cat /etc/hosts
    10.10.18.229 master
    10.10.18.221 slave01
    10.10.19.231 slave02
    10.10.19.232 slave03
    10.10.18.230 slave04
    
    
  2. 下载安装包并解压
    [hadoop@master ~]$ wget http://www-us.apache.org/dist/hbase/stable/hbase-1.2.5-bin.tar.gz
    [hadoop@master ~]$ tar xvf hbase-1.2.5-bin.tar.gz
    
  3. 编辑环境变量
    #添加
    [hadoop@master hbase-1.2.5]$ vim ~/.bash_profile 
    export HBASE_HOME=/home/hadoop/hbase-1.2.5
    export PATH=$PATH:$HBASE_HOME/bin
    
  4. 编辑hbase-env.xml
    主要是添加JAVA_HOME环境变量
    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
    
  5. 编辑hbase-site.xml
    
        
            hbase.rootdir #设置hbase数据库存放数据的目录
            hdfs://master:9000/hbase
        
        
        hbase.cluster.distributed  #打开hbase分布模式
            true
        
        
            hbase.master #指定hbase集群主控节点
            master:60000
        
        
            hbase.zookeeper.quorum
            master,slave01,slave02,slave03,slave04 #指定zookeeper集群节点名,因为是由zookeeper表决算法决定的
        
        
            hbase.zookeeper.property.dataDir #指zookeeper集群data目录
            /home/hadoop/hbase-1.2.5/zookeeper
        
    
    
  6. 编辑regionservers文件
    [hadoop@master conf]$ cat regionservers 
    slave01
    slave02
    slave03
    slave04
    
  7. 将修改的hbase目录同步其它节点
    [hadoop@master ~]$ scp -r hbase-1.2.5 slave01:~/
    [hadoop@master ~]$ scp -r hbase-1.2.5 slave02:~/
    [hadoop@master ~]$ scp -r hbase-1.2.5 slave03:~/
    [hadoop@master ~]$ scp -r hbase-1.2.5 slave04:~/
    
  8. 启动/关闭Hbase数据库集群
    #启动hbase之前必需检查hadoop是否已经启动
    [hadoop@master ~]$ hdfs dfsadmin -report |less
    Configured Capacity: 9508728098816 (8.65 TB)
    Present Capacity: 7003711967546 (6.37 TB)
    DFS Remaining: 5616475771026 (5.11 TB)
    DFS Used: 1387236196520 (1.26 TB)
    DFS Used%: 19.81%
    Under replicated blocks: 137
    Blocks with corrupt replicas: 0
    Missing blocks: 0
    Missing blocks (with replication factor 1): 0
    
    -------------------------------------------------
    Live datanodes (4):
    ...
    #启动Hbase集群
    [hadoop@master conf]$ start-hbase.sh 
    slave01: starting zookeeper, logging to /home/hadoop/hbase-1.2.5/bin/../logs/hbase-hadoop-zookeeper-slave01.out
    slave03: starting zookeeper, logging to /home/hadoop/hbase-1.2.5/bin/../logs/hbase-hadoop-zookeeper-slave03.out
    master: starting zookeeper, logging to /home/hadoop/hbase-1.2.5/bin/../logs/hbase-hadoop-zookeeper-master.out
    slave04: starting zookeeper, logging to /home/hadoop/hbase-1.2.5/bin/../logs/hbase-hadoop-zookeeper-slave04.out
    slave02: starting zookeeper, logging to /home/hadoop/hbase-1.2.5/bin/../logs/hbase-hadoop-zookeeper-slave02.out
    starting master, logging to /home/hadoop/hbase-1.2.5/logs/hbase-hadoop-master-master.out
    slave01: starting regionserver, logging to /home/hadoop/hbase-1.2.5/bin/../logs/hbase-hadoop-regionserver-slave01.out
    slave03: starting regionserver, logging to /home/hadoop/hbase-1.2.5/bin/../logs/hbase-hadoop-regionserver-slave03.out
    slave02: starting regionserver, logging to /home/hadoop/hbase-1.2.5/bin/../logs/hbase-hadoop-regionserver-slave02.out
    slave04: starting regionserver, logging to /home/hadoop/hbase-1.2.5/bin/../logs/hbase-hadoop-regionserver-slave04.out
    #可以看到在master上多了两个进程HQuorumPeer和HMaster
    [hadoop@master conf]$ jps
    13154 Jps
    46355 ResourceManager
    9736 RunJar
    45787 NameNode
    46090 SecondaryNameNode
    12668 HMaster
    8641 JobHistoryServer
    12559 HQuorumPeer
    #在slave节点上也多了两个进程:HQuorumPeer和HRegionServer
    [hadoop@master conf]$ ssh slave01
    Last login: Thu May  4 17:31:40 2017 from master
    [hadoop@slave01 ~]$ jps
    13244 DataNode
    15944 NodeManager
    5688 HQuorumPeer
    6057 Jps
    5800 HRegionServer
    
  9. 查看Hbase状态
    #进入Hbase shell
    [hadoop@master conf]$ hbase shell
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/home/hadoop/hbase-1.2.5/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/home/hadoop/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
    HBase Shell; enter 'help' for list of supported commands.
    Type "exit" to leave the HBase Shell
    Version 1.2.5, rd7b05f79dee10e0ada614765bb354b93d615a157, Wed Mar  1 00:34:48 CST 2017
    #可以看到,当前存在一个活动master主机,3台regionserver主机,貌似还少一台。后来发现是因为regionserver主机时间与master主机不同步,时间比master主机早了导致的。
    hbase(main):001:0> status
    1 active master, 0 backup masters, 3 servers, 0 dead, 0.3333 average load
    #安装配置ntp服务后,4个regionserver都存在了
    hbase(main):001:0> status
    1 active master, 0 backup masters, 4 servers, 0 dead, 0.5000 average load
    

你可能感兴趣的:(Hbase安装部署)