hadoop -- Hbase

这篇具有很好参考价值的文章主要介绍了hadoop -- Hbase。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HBase是一个分布式、可扩展、面向列的数据存储(百万级别列)、可伸缩、高可靠性、实时读写的NoSQL 数据库。

HBase利用 Hadoop的 HDFS作为其文件存储系统, 利用MapReduce 来处理HBase中的海量数据, 利用Zookeeper作为分布式协同服务。

HBase 基本的操作命令: 

# 进入HBase 客户端
[zsm@hadoop102 hbase-1.3.1]$ bin/hbase shell

# 查看所有的表
hbase(main):002:0> list
TABLE                                                                                                                                                                                                                       
stu                                                                                                                                                                                                                    
stu2                                                                                                                                                                                                                   
stu3                                                                                                                                                                                                                   
stu4 

创建表: 

create 'tableName', 'cf1', 'cf2'

创建一个包含cf1、cf2 两个列族的表

插入数据: 

put 'tableName', 'row1', 'cf1:column1', 'value1'

在表的【row1】 行,【cf1】 列族下的 【column1】 列 中插入值 【value1】

更新数据:

put 'tableName', 'row1', 'cf1:column1', 'value2'

将表的【row1】 行,【cf1】 列族下的 【column1】 列值修改为【value2】

查看数据: 

# 查看指定行
get 'tableName', 'row1'

# 查看指定行的指定列族的指定列
get 'tableName', 'row1', 'cf1:column1'

全表扫描数据: 

# 全表扫描
scan 'tableName'

# 分段扫描 ,从row1行开始 【, 到row2行结束】
scan 'tableName', {STARTROW => 'row1' [, STOPROW => 'row2']}

条件过滤: 

# 单列值过滤器(SingleColumnValueFilter)
scan 'mytable', {FILTER => "SingleColumnValueFilter('cf1', 'column1', '=', 'value1')"}

# 组合过滤
scan 'mytable', {FILTER => "FilterList(AND, SingleColumnValueFilter('cf1', 'column1', '=', 'value1'), SingleColumnValueFilter('cf2', 'column2', '>=', '100'))"}

# 页码过滤
scan 'mytable', {FILTER => "PageFilter(10)"}

# 行键范围过滤器(RowFilter)
scan 'mytable', {FILTER => "RowFilter(>=, 'binary:row1')"}

删除表、数据

# 删除表
disable 'tableName'
drop 'tableName'

# 清空表
truncate 'tableName'

# 删除某一行
delete 'tableName', 'row1'

# 删除某一列
delete 'tableName', 'row1', 'cf1:column1'

HBase 数据模型

HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个multi-dimensional map(多维度 K-V)。它是一个面向列的数据存储, 可容纳百万级别列。

HBase物理存储结构:

hadoop -- Hbase,大数据,hadoop,hbase,大数据

HBase的数据模型的主要组成部分:

  1. 表(Table):HBase中的数据存储在表中,每个表有一个唯一的名称。表由行和列组成,以键值对的形式存储数据。

  2. 行(Row):在HBase中,每一行由一个唯一的行键标识。行键是一个可变长的字节数组,以字典序排序。行键是HBase中数据访问和查询的主要方式。

  3. 列族(Column Family):表中的列按照列族进行组织,列族定义了一组具有相似属性的列。每个列族都有一个唯一的名字。不同列族的列在物理存储上是分开存储的,这样可以为不同列族的数据设置不同的存储和压缩策略。

  4. 列限定符(Column Qualifier):列限定符用于标识列族中的每个列,它是在列族内唯一的。例如,如果列族是"user",那么列限定符可以是"age"、"name"等。

  5. 单元格(Cell):一个单元格由行键、列族、列限定符和时间戳组成。一个表中的数据由多个单元格组成。

  6. 版本号(Version):HBase支持存储多个版本的数据。每个单元格可以存储多个版本的值,每个版本都有一个对应的时间戳。通过版本号可以实现数据的历史查询和版本控制。

  7. 命名空间(Namespace):命名空间是对表的逻辑分组,相当于一个命名空间的容器。它提供了一种逻辑隔离和管理表的方式。

HBase架构原理:

hadoop -- Hbase,大数据,hadoop,hbase,大数据文章来源地址https://www.toymoban.com/news/detail-553189.html

  • client: 包含访问HBase的接口并维护cache来加快对HBase的访问
  • zookeeper: 
    • 保证任何时候,集群中只有一个活跃的master
    • 存储所有的region的寻址入口
    • 实时监控Region server 的上线和下线信息,并实时通知Master
    • 存储HBase的schema和table的元数据 
  • Master
    • 为RegionServer 分配region
    • 负责Region server 的负载均衡
    • 发现失效的Region server 并重新分配其上的region
    • 管理用户对table的增删改操作
  • RegionServer
    • 存储HBase的实际数据
    • 刷新缓存到HDFS
    • 维护region, 处理对这些region的IO请求
    • 切分在运行过程中变化过大的region
  • Region: HBase分布式存储和负载均衡的最小单元,包含一个或多个store,每个store保存一个columns family。
  • Store: 包括位于内存中的memstore和位于磁盘的storefile。客户端检索数据,先在memstore找,找不到再找storefile 。
    • MemStore:放在内存里的,保存修改的数据即keyValues。当MemStore的大小达到一个阀值(默认64MB)时,MemStore会被Flush到文件。
    • StoreFile:MemStore内存中的数据写到文件后就是StoreFile,StoreFile底层是以HFile的格式保存。
      • 当storefile文件的数量增长到一定阈值后,系统会进行合并(minor、major compaction),在合并过程中会进行版本合并和删除工作(majar),形成更大的storefile
      • 当一个region所有的storefile的大小和超过一定阈值后,会把当前的region分割为两个,并有hmaster分配到相应的regionserver服务器,实现负载均衡
    • HFile:HBase中KeyValue数据的存储格式,是Hadoop的二进制格式文件。
  • HLog:WAL log --- WAL意为write ahead log, 用来做灾难恢复使用,HLog记录数据的所有变更,一旦region server 宕机,就可以从log中进行恢复。

到了这里,关于hadoop -- Hbase的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux CentOS下大数据环境搭建(zookeeper+hadoop+hbase+spark+scala)

    本篇文章是结合我个人学习经历所写,如果遇到什么问题或者我有什么错误,欢迎讨论。 百度网盘链接:https://pan.baidu.com/s/1DCkQQVYqYHYtPws9hWGpgw?pwd=zh1y 提取码:zh1y 软件在连接中VMwareWorkstation_V16.2.1_XiTongZhiJia的文件夹下。 双击运行安装包,这里下一步即可。 这里勾选我接受许可

    2024年04月15日
    浏览(66)
  • 轻大21级软工大数据实验(手把手教你入门Hadoop、hbase、spark)

    写在最前面,如果你只是来找答案的,那么很遗憾,本文尽量避免给出最后结果,本文适合Linux0基础学生,给出详细的环境配置过程,实验本身其实很简单,供大家一起学习交流。 1 .编程实现以下指定功能,并利用 Hadoop 提供的 Shell 命令完成相同任务 : 向HDFS 中上传任意文

    2024年02月05日
    浏览(82)
  • 大数据系统常用组件理解(Hadoop/hive/kafka/Flink/Spark/Hbase/ES)

    一.Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。 Hadoop的核心是yarn、HDFS和Mapreduce。yarn是资源管理系统,实现资源调度,yarn是Hadoop2.0中的资源管理系统,总体上是master/slave结构。对于yarn可以粗浅将其理解

    2024年02月20日
    浏览(44)
  • 大数据平台安装实验: ZooKeeper、Kafka、Hadoop、Hbase、Hive、Scala、Spark、Storm

    ​ 在大数据时代,存在很多开源的分布式数据采集、计算、存储技术,本实验将在熟练掌握几种常见Linux命令的基础上搭建几种常用的大数据采集、处理分析技术环境。 相关安装包下载: 链接:https://pan.baidu.com/s/1Wa2U3qstc54IAUCypcApSQ 提取码:lcd8 Hadoop大数据平台所需工具、软件

    2023年04月09日
    浏览(88)
  • 大数据期资料2023 Beta版 - Hadoop、HDFS、MapReduce、Hive、ZooKeeper、Kafka、HBase详解

    了解大数据概念、Hadoop、HDFS、MapReduce、Hive、ZooKeeper、Kafka、HBase等技术,包括特点、命令操作和启动关闭方法。获取2023年大数据资料Beta版。

    2024年02月06日
    浏览(231)
  • 大数据集群搭建全部过程(Vmware虚拟机、hadoop、zookeeper、hive、flume、hbase、spark、yarn)

    1.网关配置(参照文档) 注意事项:第一台虚拟机改了,改为centos 101 ,地址为192.168.181.130 网关依然是192.168.181.2,但是一定要注意,它在D盘的文件名称是Hadoop 101,后面重新搭建的会命名文件夹为hadoop 101,hadoop 102和hadoop 103,然后发到一个总的文件夹hadoop_03里面去 VMnet8的IP地址一定

    2024年02月02日
    浏览(97)
  • HBase架构篇 - Hadoop家族的天之骄子HBase

    HBase 的数据存储在表中。表名是一个字符串。表由行和列组成。 HBase 的行由行键(rowkey)和 n 个列(column)组成。行键没有数据类型,可以看作是字节数组,类似于关系型数据库的主键索引,在整个 HBase 表中是唯一的,按照字母顺序排序。 HBase 的列族由多个列组成,相当于

    2023年04月20日
    浏览(34)
  • 实操Hadoop大数据高可用集群搭建(hadoop3.1.3+zookeeper3.5.7+hbase3.1.3+kafka2.12)

    前言 纯实操,无理论,本文是给公司搭建测试环境时记录的,已经按照这一套搭了四五遍大数据集群了,目前使用还未发现问题。 有问题麻烦指出,万分感谢! PS:Centos7.9、Rocky9.1可用 集群配置 ip hostname 系统 CPU 内存 系统盘 数据盘 备注 192.168.22.221 hadoop1 Centos7.9 4 16 250G 19

    2024年02月03日
    浏览(38)
  • hadoop -- Hbase

    HBase是一个分布式、可扩展、面向列的数据存储(百万级别列)、可伸缩、高可靠性、实时读写的NoSQL 数据库。 HBase利用 Hadoop的 HDFS作为其文件存储系统, 利用MapReduce 来处理HBase中的海量数据, 利用Zookeeper作为分布式协同服务。 HBase 基本的操作命令:  创建表:  创建一个

    2024年02月15日
    浏览(37)
  • Hadoop-Hbase

    1. Hbase安装 1.1  安装zookeeper、 hbase 解压至/opt/soft,并分别改名 配置环境变量并source生效 #ZK export ZOOKEEPER_HOME=/opt/soft/zk345 export PATH=$ZOOKEEPER_HOME/bin:$PATH #HBASE_HOME export HBASE_HOME=/opt/soft/hbase235 export PATH=$HBASE_HOME/bin:$PATH hbase235/conf 目录下的 编辑hbase-env.sh:[root@kb129 conf]# vim ./hbase-e

    2024年02月07日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包