zoukankan      html  css  js  c++  java
  • HBase伪分布式安装(HDFS)+ZooKeeper安装+HBase数据操作+HBase架构体系

    HBase1.2.2伪分布式安装(HDFS)+ZooKeeper-3.4.8安装配置+HBase表和数据操作+HBase的架构体系+单例安装,记录了在Ubuntu下对HBase1.2.2的实践操作,HBase的安装到数据库表的操作.包含内容1.HBase单例安装2.HBase伪分布式安装(基于Hadoop的HDFS)过程,3.HBase的shell编程,对HBase表的创建,删除等的命令,HBase对数据的增删查等操作.4.简单概述了Hbase的架构体系.5.zookeeper的单例安装和常用操作.

    1.HBase单例安装

    1.1下载

    1.2.解压并放置特定路径如 /opt

    wxl@wxl-pc:~/Downloads$ sudo mv hbase /opt/

    1.3.设置JAVA_HOME 环境变量

    (注意,如果本机已经设置好JAVA_HOME系统变量则此不步骤不是必须的)进入到hbase路径下

    /opt/hbase
    wxl@wxl-pc:/opt/hbase$ vim conf/hbase-env.sh
    #增加JAVA_HOME路径,根据自己jdk安装位稍有不同
    export JAVA_HOME=/opt/java/

    1.4.编辑conf/hbase-site.xml

    HBase默认存储在/tmp路径下,可是每次机器重启,/tmp下的数据会被清除,所以首席那应该更改存储路径,如存在/home/wxl 路径下,并且会创建新的hbase文件夹(如果没有安装zookeeper,没关系,不影响在开发和测试环境下的HBase使用)

    wxl@wxl-pc:/opt/hbase$ vim conf/hbase-site.xml
    <configuration>
      <property>
        <name>hbase.rootdir</name>
        <value>file:///home/wxl/hbase</value>
      </property>
      <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/wxl/zookeeper</value>
      </property>
    </configuration>

    这里写图片描述

    1.5.启动HBase

    wxl@wxl-pc:/opt/hbase$ bin/start-hbase.sh

    这里写图片描述

    2.HBase的shell命令操作

    2.1连接HBase shell

    wxl@wxl-pc:/opt/hbase$ ./bin/hbase shell

    这里写图片描述
    可以通过输入help命令,来大致了解可以输入命令和Hbase存储的数据结构

    2.2.创建表

    必须输入表名和列族名(ColumnFamily name)

    hbase(main):002:0> create 'test','cf'

    这里写图片描述

    2.3.查看表

    hbase(main):003:0> list 'test'
    TABLE                                                                           
    test                                                                            
    1 row(s) in 0.0320 seconds
    
    => ["test"]

    2.4.给表赋值

    hbase(main):004:0> put 'test', 'wangxiaolei', 'cf:a', 'wov@outlook.com'
    0 row(s) in 0.2010 seconds
    
    hbase(main):005:0> put 'test', '王小雷','cf:b;','bio get it done'
    0 row(s) in 0.0120 seconds
    
    hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
    0 row(s) in 0.0240 seconds
    

    这里写图片描述

    2.5.对列表计数

    使用scan关键字
    这里写图片描述

    2.6.查询列表中某行

    如查询第二行,输入

    hbase(main):009:0> get 'test','王小雷'

    这里写图片描述

    2.7.更改表(删除,修改表)

    在更改表之前需要将表的状态更改为disable,在更改完之后可以enable

    hbase(main):009:0> disable 'test'
    0 row(s) in 2.5870 seconds
    
    hbase(main):010:0> enable 'test'
    0 row(s) in 1.2680 seconds
    
    hbase(main):011:0> disable 'test'
    0 row(s) in 2.2370 seconds
    

    在test表为 disable 状态下,删除test表

    hbase(main):012:0> drop 'test'
    0 row(s) in 1.2590 seconds

    2.8.退出shell并停止HBase

    在shell中使用quit命令(或者exit),可以退出hbase shell,但是hbase仍在运行
    输入jps可以查看HMaseter守护程序还在
    这里写图片描述
    使用stop-hbase.sh退出hbase

    wxl@wxl-pc:/opt/hbase$ ./bin/stop-hbase.sh
    stopping hbase.......

    stopping

    3.HBase伪分布式安装

    如果没有安装Hadoop请安装伪分布式的Hadoop教程如下Ubuntu16.04安装Hadoop2.6+Spark1.6+开发实例

    首先停止2HBase(2.8.退出shell并停止HBase)

    3.1.配置伪分布式的hbase-site.xml文件

    设置distributed为true,是为了让jvm模拟集群,再者是修改数据保存路径,放置到HDFS上,配置rootdir,其中hdfs://localhost:9000根据自己hadoop配置指定(也可能是hdfs://localhost:8020/hbase)(但是可以不配至,HBase会自动寻找HDFS路径)

    <configuration>
      <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
      </property>
    
    
      <property>
        <name>hbase.rootdir</name>
        <value>hdfs://localhost:9000/hbase</value>
      </property>
    

    3.2.启动HBase

    wxl@wxl-pc:/opt/hbase$ ./bin/start-hbase.sh

    3.3.在HDFS上查看HBase文件

    wxl@wxl-pc:/opt/hbase$ hadoop fs -ls /hbase

    ls hbase

    3.4.HBase上的数据操作,创建表,赋值,删除表等见步骤1.2-1.5

    4.HBase的HRegionServer和HMaster及架构体系图

    4.1此时使用jps(我开启来hadoop,spark,hbase)

    可见,HBase的HRegionServer和HMaster已经开启.

    wxl@wxl-pc:/opt/hbase$ jps
    18065 Master
    17795 NodeManager
    19379 HRegionServer
    17331 DataNode
    17669 ResourceManager
    17511 SecondaryNameNode
    19255 HMaster
    19991 Jps
    17177 NameNode
    19181 HQuorumPeer
    18206 Worker
    18607 SparkSubmit

    这里写图片描述

    4.2.关于HBase的HRegionServer和HMaster是什么,什么样的体系结构,如下图.

    这里写图片描述

    5.1 ZooKeeper-3.4.8安装+常用操作实践

    版本ZooKeeper-3.4.8 系统Ubuntu16.04
    5.1.创建conf/zoo.cfg

    wxl@wxl-pc:/opt/zookeeper$ cp conf/zoo_sample.cfg conf/zoo.cfg
    查看zookeeper配置信息
    (注意此处为了测试所以dataDir=/tmp/zookeeper,这里每次重启计算机数据就会丢失,如果保留可以放入其他路径,如/home/wxl/zookeeper)

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/tmp/zookeeper
    clientPort=2181

    其中,
    - tickTime
    - tickTime是ZooKeeper的毫秒级计量单位,表示正常的会话时间,如果超过设置值的两倍就会连接超时.
    - dataDir
    - 设置HBase的路径用于保存内存数据快照和更新数据库事务的日志.
    - clientPort
    - 设置监听连接客户端的接口

    5.2. 执行zookeeper

    开启zookeeper

    wxl@wxl-pc:/opt/zookeeper$ bin/zkServer.sh start

    这里写图片描述
    连接zookeeper

    wxl@wxl-pc:/opt/zookeeper$ bin/zkCli.sh -server 127.0.0.1:2181

    这里写图片描述

    5.3. zookeeper基本命令

    [zk: 127.0.0.1:2181(CONNECTED) 0] help
    ZooKeeper -server host:port cmd args
        stat path [watch]
        set path data [version]
        ls path [watch]
        delquota [-n|-b] path
        ls2 path [watch]
        setAcl path acl
        setquota -n|-b val path
        history
        redo cmdno
        printwatches on|off
        delete path [version]
        sync path
        listquota path
        rmr path
        get path [watch]
        create [-s] [-e] path data acl
        addauth scheme auth
        quit
        getAcl path
        close
        connect host:port

    5.3.1. ls查看路径下有那些文件(在zoo.cfg设置的的参数datadir)

    查看

    #如果没安装HBase此处只显示zookeeper
    [zk: 127.0.0.1:2181(CONNECTED) 1] ls /

    这里写图片描述
    5.3.2.HBase创建Znode为zk_test_wangxiaolei

    [zk: 127.0.0.1:2181(CONNECTED) 2] create /zk_test_wangxiaolei my_data

    这里写图片描述

    5.3.3.验证(查看)zk_test_wangxiaolei节点下数据

    [zk: 127.0.0.1:2181(CONNECTED) 3] get /zk_test_wangxiaolei
    my_data
    cZxid = 0x66
    ctime = Mon Aug 01 22:06:36 CST 2016
    mZxid = 0x66
    mtime = Mon Aug 01 22:06:36 CST 2016
    pZxid = 0x66
    cversion = 0
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 7
    numChildren = 0
    

    这里写图片描述

    5.3.4.set命令来改变某(如zk_test_wangxiaolei)节点下的数据

    [zk: 127.0.0.1:2181(CONNECTED) 4] set /zk_test_wangxiaolei junk
    cZxid = 0x66
    ctime = Mon Aug 01 22:06:36 CST 2016
    mZxid = 0x69
    mtime = Mon Aug 01 22:29:46 CST 2016
    pZxid = 0x66
    cversion = 0
    dataVersion = 1
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 4
    numChildren = 0

    这里写图片描述

    再次get节点zk_test_wangxiaolei可以看到数据已经改变

    5.3.5.最后删除测试节点

    [zk: 127.0.0.1:2181(CONNECTED) 5] delete /zk_test_wangxiaolei      
    [zk: 127.0.0.1:2181(CONNECTED) 6] ls /
    [zookeeper, hbase]
    [zk: 127.0.0.1:2181(CONNECTED) 7]
  • 相关阅读:
    基于水利遥测终端机的山洪灾害水雨情监测解决方案
    水利遥测RTU助力灌区渠道流量监测解决方案
    环保数采仪助力企业智慧用电工况监测系统
    Linq中SingleOrDefault、FirstOrDefault的用法
    private、 protected、 public、 internal 修饰符的访问权限
    Bootstrap 表格
    自我介绍
    周总结
    目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?
    “模仿”还是“创新”
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467667.html
Copyright © 2011-2022 走看看