• Hbase搭建和shell命令笔记


    写在前面

    在老师的要求下,我们学习了hbase的相关操作。hbase是一个非关系型数据库,其存储机构与关系型数据库有着很大的不同,同时hbase也是一个分布式数据库。其查询效率很高。

    准备环境

    hbase建立在hadoop的HDFS和zookeeper的基础上,所以要配置hbase之前首先要把HDFS和zookeeper配置好。这里我配置的是分布式的hbase,所以要建立在已配好hdfs和zookeeper的基础上。

    首先使用sftp软件把压缩包传到/opt/software下,然后解压到/opt/module/目录下:

    [liuge@hadoop03 software]$ tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/module/
    

    之后我们就可以开始配置了。

    配置分布式hbase

    首先正确启动Zookeeper和HDFS:

    [liuge@hadoop03 zookeeper-3.4.10]$ bin/zkServer.sh start
    [liuge@hadoop04 zookeeper-3.4.10]$ bin/zkServer.sh start
    [liuge@hadoop05 zookeeper-3.4.10]$ bin/zkServer.sh start
    
    [liuge@hadoop03 hadoop-2.7.2]$ sbin/start-dfs.sh
    

    这里可以暂时不启动yarn,因为用不到MapReduce。

    首先修改hbase-env.sh(在conf目录下):

    export JAVA_HOME=/opt/module/jdk1.8.0_202
    export HBASE_MANAGES_ZK=false
    

    这里可以把这两行注释掉,这样启动的时候就不会报警告了:

    之后,修改hbase-site.xml:

    <configuration>
    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop03:9000/HBase</value>
    </property>
    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>
     <!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 -->
    <property>
    <name>hbase.master.port</name>
    <value>16000</value>
    </property>
    <property> 
    <name>hbase.zookeeper.quorum</name>
     <value>hadoop03,hadoop04,hadoop05</value>
    </property>
    <property> 
    <name>hbase.zookeeper.property.dataDir</name>
     <value>/opt/module/zookeeper-3.4.10/zkData</value>
    </property>
    </configuration>
    

    这里需要注意的点是,hbase.rootdir的value里要把hadoop03换成你自己的主机名或者ip地址,hbase.zookerper.quorum的value要把这三个换成你自己的主机名或者ip地址,hbase.zookeeper.property.dataDir的value根据你自己配置的zookeeper目录设置。

    打开regionservers,把三台主机名或者IP地址放进去:

    hadoop03
    hadoop04
    hadoop05
    

    之后,配置一下软连接hadoop配置文件到hbase:

    [liuge@hadoop03 module]$ ln -s /opt/module/hadoop-
    2.7.2/etc/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml
    [liuge@hadoop03 module]$ ln -s /opt/module/hadoop-
    2.7.2/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml
    

    最后,把配置好的Hbase分发到其他集群:

    [liuge@hadoop03 module]$ xsync hbase/
    

    到这里,配置就算是完成了。

    启动Hbase

    启动方式1

    [liuge@hadoop03 hbase]$ bin/hbase-daemon.sh start master
    [liuge@hadoop03 hbase]$ bin/hbase-daemon.sh start regionserver
    

    启动方式2

    [liuge@hadoop03 hbase]$ bin/start-hbase.sh
    

    对应的停止方式为:

    [liuge@hadoop03 hbase]$ bin/stop-hbase.sh
    

    启动成功后,我们可以直接查看web界面,端口号为16010:

    http://hadoop03:16010
    

    这里的hadoop03要换成你自己的主机名或者ip地址。

    hbase的shell操作

    hbase作为一个数据库,肯定是API操作要更加重要,shell命令只是作为简单补充,这里只简单记录一下。

    1. 进入Hbase客户端:

      [liuge@hadoop03 hbase]$ bin/hbase shell
      
    2. 查看帮助命令:

      hbase(main):001:0> help
      
    3. 列出数据库中的所有表:

      hbase(main):002:0> list
      
    4. 创建表:

      hbase(main):002:0> create 'student','info'
      
    5. 插入数据到表

      hbase(main):003:0> put 'student','1001','info:sex','male'
      hbase(main):004:0> put 'student','1001','info:age','18'
      hbase(main):005:0> put 'student','1002','info:name','Janna'
      hbase(main):006:0> put 'student','1002','info:sex','female'
      hbase(main):007:0> put 'student','1002','info:age','20'
      
    6. 扫描查看表数据:

      hbase(main):008:0> scan 'student'
      hbase(main):009:0> scan 'student',{STARTROW => '1001', STOPROW => 
      '1001'}
      hbase(main):010:0> scan 'student',{STARTROW => '1001'}
      
    7. 查看表结构

      hbase(main):011:0> describe ‘student’
      
    8. 更新指定字段的数据(其实还是put):

      hbase(main):012:0> put 'student','1001','info:name','Nick'
      hbase(main):013:0> put 'student','1001','info:age','100'
      
    9. 查看指定行或指定列族:列的数据:

      hbase(main):014:0> get 'student','1001'
      hbase(main):015:0> get 'student','1001','info:name'
      
    10. 统计表数据行数:

      hbase(main):021:0> count 'student'
      
    11. 删除表数据:

      删除某rowKey的全部数据:
      hbase(main):016:0> deleteall 'student','1001'
      删除某rowKey的某一列数据:
      hbase(main):017:0> delete 'student','1002','info:sex'
      
    12. 清空表数据:

      hbase(main):018:0> truncate 'student'
      

      提示 清空表前先disable,再truncate

    13. 删除表:

      首先要让表disable:
      hbase(main):019:0> disable 'student'
      然后才能把表drop:
      hbase(main):020:0> drop 'student'
      
    14. 变更表信息:

      hbase(main):022:0> alter 'student' {NAME=>'info',VERSIONS=>3}
      hbase(main):022:0> get 
      'student','1001',{COLUMN=>'info:name',VERSIONS=>3}
      

    总结

    总的来说,这篇文章简单记录了一下hbase的配置及shell操作,最重要的API操作等我过几天再整理一篇博客,那个内容要更多。

  • 相关阅读:
    JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上。
    JavaScript 是脚本语言
    java String去除两端的空格和空字符
    response.sendRedirect 的功能是地址重定向(页面跳转)
    Java中“|”和“||”用法的区别
    如何居中div?
    DIV居中的几种方法
    table 中的tr 行点击 变换颜色背景
    Html-浅谈如何正确给table加边框
    背景图以拉伸方式(不重复)填充背景
  • 原文地址:https://www.cnblogs.com/wushenjiang/p/13837425.html
Copyright © 2020-2023  润新知