• HBase 伪分布式环境搭建及基础命令使用


    一.前提条件:

    (1)文件存储在HDFS文件系统之上。因此必须启动hadoop服务。(namenode,datanode,resourcemanager,nodemanager,historyserver)
    (2)源文件依赖于zookeeper。因此需要启动zookeeper服务。(./zkServer ./zkCli.sh)

    二,HBase的安装(版本:5.3.6)

    (1) tar -zxvf hbase-0.98.6-cdh5.3.6.tar.gz  -C /opt/modules  解压文件包

    (2) cd /opt/modules/hbase-0.98.6-cdh5.3.6/conf 进入hbase conf目录下准备进行配置

    (3) 编辑hbase-env.sh文件
    ##Java环境变量的配置
    export JAVA_HOME=/opt/modules/jdk1.8.0_151
    ##是否默认zookeeper设置。自定义的话,选择false。建议自定义
    export HBASE_MANAGES_ZK=true

    (4) 编辑hbase-site.xml文件

    <configuration>
      <property>
         <name>hbase.tmp.dir</name>
         <value>/opt/modules/hbase-0.98.6-cdh5.3.6/data/tmp</value>
      </property>
    
      <property>
         <name>hbase.rootdir</name>
         <value>hdfs://tonyliu.local.com:8020/hbase</value>
      </property>
    
      <property>
       <name>hbase.cluster.distributed</name>
       <value>true</value>
      </property>
    
      <property>
       <name>hbase.zookeeper.quorum</name>
       <value>tonyliu.local.com</value>
      </property>
    
    </configuration>
    

     (6) 编辑regionservers文件(分布式环境可以添加多台)
    tonyliu.local.com

    (7)启动Hbase
    注意事项:启动之前一定要吧/etc/hosts文件中的以下两行注释掉再启动各个服务。
    不然Hbase的master及regionserver服务会启动失败(启动后再消失)
    ##127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ##::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    1.启动master
    bin/hbase-daemon.sh start master

    2.启动regionserver
    bin/hbase-daemon.sh start regionserver

    ##jps如果出现以下2个服务说明启动成功##

    [liupeng@www hbase-0.98.6-cdh5.3.6]$ jps
    2816 DataNode
    28112 Jps
    3713 org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
    22850 HMaster
    2757 SecondaryNameNode
    3622 Main
    22939 HRegionServer
    2924 NodeManager
    3101 QuorumPeerMain
    

    (8)打开Hbase的web界面
    http://tonyliu.local.com:60010/master-status

    端口号版本不同也不同。我用的是60010的端口。如果web界面能够正常打开。说明Hbase的配置没有问题。

    二,Hbase的基本命令
    1. 进入Hbase 命令行界面
    bin/hbase shell

    ##其他命令可以直接bin/hbase进行列表查看。

    2.help命令查看Hbase中的shell命令

    help

    3. general于ddl相关命令及示例
    ##general没什么好说了可以通过以下命令来查看当前用户,版本,状态等基本信息。
    (1)COMMAND GROUPS:
      Group name: general
      Commands: status, table_help, version, whoami

    ##shell命令中分2大块主要的操作命令。分别是ddl于dml。下面先一起来看一下ddl都有哪些常用命令
      Group name: ddl
     (2) Commands: alter, alter_async, alter_status, create, describe, disable, disable_all, drop, drop_all, enable, enable_all, exists, get_table, is_disabled, is_enabled, list, show_filters

      Group name: namespace
      Commands: alter_namespace, create_namespace, describe_namespace, drop_namespace, list_namespace, list_namespace_tables

    <1> 跟关系型数据库不同的是Hbase没有show database,show table等SQL式的命令。在Hbase中有space相关的概念。比如创建database的话用如下方法

    【创建name_space】

    hbase(main):026:0> create 'liupeng:employee','info','contect','group'

    【查看name_space属性】

    desc 'liupeng:employee'

    【查看所有table表】
    hbase(main):059:0> list
    TABLE
    liupeng:employee
    student
    2 row(s) in 0.0130 seconds

    => ["liupeng:employee", "student"]

    【向table表中插入数据】

    hbase(main):029:0> put 'liupeng:employee','1001','info:name','liupeng'
    0 row(s) in 0.0300 seconds

    hbase(main):030:0> put 'liupeng:employee','1001','info:age','34'
    0 row(s) in 0.0120 seconds

    hbase(main):031:0> put 'liupeng:employee','1001','contect:mail','liupliup@cn.ibm.com'
    0 row(s) in 0.0070 seconds

    hbase(main):032:0> put 'liupeng:employee','1001','contect:phone','15962459503'
    0 row(s) in 0.0100 seconds

    hbase(main):033:0> put 'liupeng:employee','1001','group:number','1'
    0 row(s) in 0.0270 seconds

    hbase(main):034:0> put 'liupeng:employee','1002','info:name','Jack_Ma'
    0 row(s) in 0.0160 seconds

    hbase(main):035:0> put 'liupeng:employee','1002','info:age','45'
    0 row(s) in 0.0110 seconds

    hbase(main):036:0> put 'liupeng:employee','1002','contect:mail','jackMa@alibaba.com'
    0 row(s) in 0.0100 seconds

    hbase(main):037:0> put 'liupeng:employee','1002','contect:phone','15977634464'
    0 row(s) in 0.0210 seconds

    hbase(main):038:0> put 'liupeng:employee','1002','group:number','1'
    0 row(s) in 0.0110 seconds

    hbase(main):039:0> put 'liupeng:employee','1003','info:name','kevin_shi'
    0 row(s) in 0.0180 seconds

    hbase(main):040:0> put 'liupeng:employee','1003','info:age','40'
    0 row(s) in 0.0080 seconds

    hbase(main):041:0> put 'liupeng:employee','1003','contect:mail','kevinshi@163.com'
    0 row(s) in 0.0120 seconds

    hbase(main):042:0> put 'liupeng:employee','1003','contect:phone','18665851263'
    0 row(s) in 0.0090 seconds

    hbase(main):043:0> put 'liupeng:employee','1003','group:number','2'
    0 row(s) in 0.0110 seconds

    【查看表中所有数据】
    hbase(main):046:0> scan 'liupeng:employee'
    ROW                             COLUMN+CELL
     1001                           column=contect:mail, timestamp=1522202414649, value=liupliup@cn.ibm.com
     1001                           column=contect:phone, timestamp=1522202430196, value=15962459503
     1001                           column=group:number, timestamp=1522202455929, value=1
     1001                           column=info:age, timestamp=1522202371257, value=34
     1001                           column=info:name, timestamp=1522202364156, value=liupeng
     1002                           column=contect:mail, timestamp=1522202508002, value=jackMa@alibaba.com
     1002                           column=contect:phone, timestamp=1522202527866, value=15977634464
     1002                           column=group:number, timestamp=1522202544626, value=1
     1002                           column=info:age, timestamp=1522202484166, value=45
     1002                           column=info:name, timestamp=1522202474669, value=Jack_Ma
     1003                           column=contect:mail, timestamp=1522202590768, value=kevinshi@163.com
     1003                           column=contect:phone, timestamp=1522202605976, value=18665851263
     1003                           column=group:number, timestamp=1522202617893, value=2
     1003                           column=info:age, timestamp=1522202568861, value=40
     1003                           column=info:name, timestamp=1522202561029, value=kevin_shi

    【获取表中指定数据】
    关于获取数据方法很多。这里只是简单演示一个基本的获取操作。

    hbase(main):048:0> get 'liupeng:employee','1001',['info:name','info:age','group:1']
    COLUMN                          CELL
     info:age                       timestamp=1522202371257, value=34
     info:name                      timestamp=1522202364156, value=liupeng

    【删除数据表】
    注意:Hbase中不允许直接删除table表。要删除的话需要先disable掉指定的表后再删除。更改也是一样。先disable更改后再enable。

    hbase(main):048:0> disable 'liupeng:employee'
    hbase(main):048:0> drop 'liupeng:employee'

    【删除namespace】
    hbase(main):048:0> drop_namespace 'liupeng'


    【删除表中一列数据】
    delete 'liupeng:employee','1002','contect:mail'
    注释:'1002'指定删除的rowkey,指定要删除的列簇'contect:mail'。执行后会自动删除列簇中的value值

    【更新表中数据】
    hbase(main):030:0> put 'liupeng:employee','1002','contect:mail','tony@163.com'
    注释:在Hbase中更新就是put,相当于在原有的基础上更新了数据。只要rowkey跟列簇的指定没有错,那么put的value就为更新后的value值。




  • 相关阅读:
    win7-64系统下安装nodejs
    Vue项目使用npm run dev出现npm ERR! missing script: dev
    本地环境时覆盖Apollo配置
    金蝶K3序时簿页面增加物料即时库存显示功能
    LeetCode——开篇
    url 与 params 参数的常见操作归纳汇总(含精心准备的注释)
    如何让 arcgis require 里定义的方法可以在全局访问?
    字体图标库 iconfont、iconmoon 的维护管理与使用探索
    【转载】ES5-ES12 常用语法特性
    一次 outline 去除经验(非继承属性,看着像继承)
  • 原文地址:https://www.cnblogs.com/liupengpengg/p/9195336.html
Copyright © 2020-2023  润新知