Hbase总结

红太狼 2023-06-22 04:22 16阅读 0赞

文章目录

  • 总结内容
  • 1.为什么要使用hbase
        • 所有的缓存软件就当成一个map使用;
  • 2.介绍hbase
  • 3.实战
    • 客户端的基本命令
  • 搭建高可用![在这里插入图片描述](https://img-blog.csdnimg.cn/20191216185543370.png)

总结内容

  • 为什么要使用hbase
  • 介绍hbase
  • 实战hbase单机和高可用版本
  • 客户端命令

在这里插入图片描述

1.为什么要使用hbase

Redis:

  • 同时有1w人访问;
  • 查询使用的最频繁;
  • 查询20次,查询的结果都是一样的(因为木有新的记录进去);你拿着查询的第一次结果,做一个缓存,用户后19次查询,就不用查询数据库了;
  • 对于mysql只做了一次查询;查询的第一次数据已经放到缓存中,后19次直接从缓存中取数据;(mysql就少执行了19次sql语句)
  • 缓存的数据如何更新:CUD操作(不是很频繁),直接清除缓存;更新缓存;(缓存工作于内存中)
    缓存的条件
  • 记录超级大,超级大,超级大,
  • 记录经常查询,不经常更新;
  • 命中率;
  • 放缓存耗时20分钟;
    缓存有三个级别;缓存就是一个容器,(List,Set,Map)
  • javase容器,Map;缺点:程序重启了,缓存的数据已经木有了(JVM的所有操作都是在内存中)
  • 早期的Memcache:Memcache是一个独立于java的软件,java重启只要memcache不重启,缓存的数据依然有效;缺点:电脑重启,所有的软件都关闭,当然memcache也得关闭(软件的logo是一个狐狸头)
  • 最牛逼的Redis:把数据放到内存中,同时也会在合适的时间放到硬盘中;电脑重启多次,磁盘的数据不会丢;

所有的缓存软件就当成一个map使用;

  • Map和数据库中的表做一个对比
    在这里插入图片描述
    把学习的Hbase当成一个Map使用;
    Hbase是大数据体系下面的,Redis是一个javaweb体系下面的;

2.介绍hbase

  • Hbase:是谷歌三篇论文的bigtable的实现
  • 官网:http://hbase.apache.org/
  • Hbase:hadoop的database;
  • 非关系型数据库NoSql,Redis,memcache,mongodb,Hbase

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 在线手册:http://hbase.apache.org/2.1/book.html
  • 离线的手册:
    在这里插入图片描述
  • 目录介绍

    Bin:可执行文件

    1. Conf:配置文件
    2. Docs:文档
    3. Hbase-webapp:网页
    4. Lib:jar
    5. readMe.txt:读我

在这里插入图片描述
如果发现一个目录下面有好多个html文件,我们只找index.html

3.实战

tab键可以提示+补全

  • 随机选择一台服务器(node-3)
  • 将hbase上传到node-3服务器上;

    执行的命令:

    所有的操作都是在/data/hbase目录下面;

    解压压缩包
    tar -xzf hbase-2.1.1-bin.tar.gz
    去掉版本号
    mv hbase-2.1.1 hbase
    删除文档
    rm -rf docs/

在这里插入图片描述
在这里插入图片描述

  • 配置文件:(conf/hbase-env.sh)
    在这里插入图片描述
    在这里插入图片描述
  • 配置文件(conf/hbase-site.xml)

    <?xml version=”1.0”?>
    <?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>




    hbase.rootdir

    file:///data/hbase/data



    hbase.zookeeper.property.dataDir
    /data/hbase/zookeeper



    hbase.unsafe.stream.capability.enforce
    false

  • 启动服务器

    bin/start-hbase.sh

  • 停止服务器

    bin/stop-hbase.sh

  • 访问网页
    http://node-3:16010
    在这里插入图片描述
    在这里插入图片描述

  • 目录结构
    在这里插入图片描述
  • 启动客户端:

    bin/hbase shell

在这里插入图片描述

  • 在hbase中敲的命令如下
    在这里插入图片描述

客户端的基本命令

  1. 帮助命令;所有的命令
  2. help
  3. Help ‘命令’,只列出此命令的帮助手册
  4. help 'create_namespace'
  5. Namespace
  6. 列出所有的namespace
  7. list_namespace
  8. 创建一个命名空间
  9. create_namespace 'mydata'
  10. 描述namespace
  11. describe_namespace 'mydata'
  12. 删除namespace
  13. drop_namespace 'mydata'
  14. 创建表
  15. psn:表名,cf:列族(随便起),cf:column family
  16. create 'psn', 'cf'
  17. mydata下面创建表
  18. create 'mydata:psn1', 'cf'
  19. 查询表;查看所有表
  20. List
  21. list namespace:.*’;查看此namespace下面所有的表
  22. List mydata:.*’
  23. 先禁用表,再删除表
  24. disable 'mydata:psn1
  25. 删除表;:左边的是namespace,不写默认是default;
  26. drop 'mydata:psn1'
  27. 记录的CRUD
  28. 查询所有记录
  29. scan 'mydata:psn1'
  30. 插入记录
  31. put 表名,键, 列族:列名,值(列名可以省,但是只能有一个)
  32. put 'mydata:psn1', 'key01','cf','test'
  33. 又增加了一个列;
  34. 增加第二列,只要键相同就可以;
  35. cf:列族,:后面的是列族下面的列
  36. put 'mydata:psn1', 'key01','cf:age','20'
  37. 修改值:得是键一样,列族+列得一样
  38. put 'mydata:psn1', 'key02','cf:name','100'
  39. 如果想增加新记录,只要键的值不一样就可以;
  40. 删除记录
  41. delete 表名 键,列族+列名
  42. delete 'mydata:psn1','key01','cf:age'
  43. get取一条记录
  44. Get 表名 , 键,取出键对应的所有列
  45. get 'mydata:psn1','key01'
  46. 取出指定的列,
  47. get 表名 , 键,{指定要查询的哪一列},column:一定得注意是大写
  48. get 'mydata:psn1','key01',{COLUMN => 'cf:age'}
  49. 获取总条数:
  50. count表名
  51. count 'mydata:psn1'
  52. 删除全部记录
  53. deleteall 表名,键
  54. deleteall 'mydata:psn1','key01'
  55. 截断表(truncate)
  56. truncate 表名
  57. truncate 'mydata:psn1'

对比Hbase和Mysql






























Hbase Mysql
namespace 数据库
列族(一群列) 列是固定的
记录 记录

本次小结先到这里,高可用有空会在文章末尾补充。
·
·
·

" class="reference-link">搭建高可用在这里插入图片描述

首先把hbase拷贝到四台虚拟机上

  1. 拷贝到其他虚拟机上:
  2. scp -r hbase/ node7-4:/data/hbase/
  3. scp -r hbase/ node7-3:/data/hbase/
  4. scp -r hbase/ node7-2:/data/hbase/
  5. 注意自己的主机名和目录,请勿盲目复制。

在这里插入图片描述
四台虚拟机要免密钥
先启动zookeeper
启动hadoop;hbase要四台虚拟机所有的文件都放到hdfs上

  1. 配置文件:(conf/regionservers )(配置的是小弟)
  2. node7-1
  3. node7-3
  4. node7-4
  5. 配置文件:(conf/backup-masters )(配置的是小弟)
  6. node7-1
  7. node7-3
  8. 配置文件:(conf/hbase-site.xml )(配置的是小弟)(以下配置文件注意自己的主机名和端口号)
  9. <?xml version="1.0"?>
  10. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  11. <configuration>
  12. <property>
  13. <name>hbase.rootdir</name>
  14. <!--
  15. file://表示的是本地目录
  16. hdfs://表示的是hdfs的目录;
  17. hdfs://namenode.example.org:8020/hbase(一定是active的namenode)
  18. -->
  19. <value>hdfs://node7-1:8020/data/hbase</value>
  20. </property>
  21. <property>
  22. <name>hbase.unsafe.stream.capability.enforce</name>
  23. <value>false</value>
  24. <description>
  25. 检查兼容性,如果设置为false,数据有可能丢失(这是一个警告)
  26. Controls whether HBase will check for stream capabilities (hflush/hsync).
  27. Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
  28. with the 'file://' scheme, but be mindful of the NOTE below.
  29. WARNING: Setting this to false blinds you to potential data loss and
  30. inconsistent system state in the event of process and/or node failures. If
  31. HBase is complaining of an inability to use hsync or hflush it's most
  32. likely not a false positive.
  33. </description>
  34. </property>
  35. <!--配置 zookeepr-->
  36. <property>
  37. <name>hbase.zookeeper.quorum</name>
  38. <value>node7-1:2181,node7-2:2181,node7-3:2181</value>
  39. </property>
  40. <property>
  41. <name>hbase.zookeeper.property.dataDir</name>
  42. <!-- zookeeper的目录:data目录 -->
  43. <value>/data/hbase/zookeeper_data</value>
  44. </property>
  45. <!-- 开启集群模式 -->
  46. <property>
  47. <name>hbase.cluster.distributed</name>
  48. <value>true</value>
  49. </property>
  50. </configuration>
  51. 配置文件:(conf/hbase-env.sh )(如下图)

在这里插入图片描述

  1. 将配置文件同步到其它的服务器上
  2. scp -r conf/ node7-4:/data/hbase/
  3. scp -r conf/ node7-3:/data/hbase/
  4. scp -r conf/ node7-2:/data/hbase/
  5. 在想当大哥的服务器启动hbase;(node7-2)
  6. bin/start-hbase.sh

在这里插入图片描述
访问:
http://jinghang04:16010/

在这里插入图片描述

  1. 停止服务(在大哥上停止)
  2. bin/stop-hbase.sh

在这里插入图片描述

演示:
大哥挂了,所有的二哥会随机选择一个,并且充当大哥.

查看hbase所有使用到的文件(如下图):
在这里插入图片描述
因为Hbase连接hadoop是通过hdfs协议的,所有hadoop的配置文件是无法读取的。
我们要把hadoop所有的配置文件拷贝过来,就可以生效。
hbase往zookeeper中写的文件

在这里插入图片描述

如果想清空hbase的所有数据重新来一遍
清空hdfs
清空zookeeper

发表评论

表情:
评论列表 (有 0 条评论,16人围观)

还没有评论,来说两句吧...

相关阅读

    相关 hbase 基础理论总结

    HBase 定义 HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库 HBase 数据模型 逻辑上,HBase 的数据模型同关系型数据

    相关 Hbase总结

    文章目录 总结内容 1.为什么要使用hbase 所有的缓存软件就当成一个map使用; 2.介绍hbase 3.实战