首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2021年数据HBase(一):HBase基本简介

HBase基本简介 一、HBase产生的背景介绍 从 1970 年开始,大多数的公司数据存储和维护使用的是关系型数据库 大数据技术出现后,很多拥有海量数据的公司开始选择像Hadoop的方式来存储海量数据...Hbase查询数据功能很简单,不支持join等复杂操作,不支持复杂的事务(行级的事务),从技术上来说,HBase更像是一个「数据 存储」而不是「数据库」,因为HBase缺少RDBMS中的许多特性,例如带类型的列...点扩展到20个节点,存储能力和处理能力都会加倍 HBase中的表一般有这样的特点 :一个表可以有上十亿行,上百万列 面向列:面向列(族)的存储和权限控制,列(族)独立检索 稀疏:对于为空(null...4、时空数据 ◼ 主要是轨迹, 气象网格之类, 滴滴打车的轨迹数据主要存在Hbase之中, 另外在所有大一点的数据量的车联网企业, 数据也是存储在HBase 5、CubeDb OLAP...: HBase支持块Cache和Bloom过滤器进行容量查询优化 运行管理: HBase为业务洞察和JMX度量提供内置网页。

1.8K40

2021年数据HBase(三):HBase数据模型!!!【建议收藏】

HBase数据模型 在HBASE中,数据存储在具有行和列的表中。...这是看起来关系数据库(RDBMS)一样,但将HBASE表看成是多个维 度的Map结构更容易理解 术语: 表(Table) : HBase数据都是以表形式来组织的, HBase中的表由多个行组成..., 但在列族中不存储任何内容 所有的列族的数据全部都存储在一块(文件系统HDFS) Hbase官方建议所有的列族保持一样的列, 并且将同一类的列放在一个列族中 列标识符(Column Qualifier...,包含一个值和一个时间戳, 数据以二进制存储 版本号(verson num): 每条数据都会有版本号的概念 每条数据都可以有多个版本号, 默认值为系统时间戳, 类型为Long 时间戳(timeStamp...): 每个数据都会有时间戳的概念 在向Hbase插入更新数据的时候, HBase默认会将当前操作的时间记录下来, 当然也可以人为指定时间 不同版本的数据按照时间倒序排序, 即最新的数据排在最前面 -

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2021年数据HBase(二):HBase集群安装操作

    HBase集群安装操作 一、上传解压HBase安装包 tar -xvzf hbase-2.1.0.tar.gz -C ...../server/ 二、修改HBase配置文件 1、hbase-env.sh cd /export/server/hbase-2.1.0/conf vim hbase-env.sh # 第28行 export...conf 所有的hbase配置文件 hbase-webapps hbase的web ui程序位置 lib hbase依赖的java库 logs hbase的日志文件 ​​​​​​​五、参考硬件配置...针对大概800TB存储空间的集群中每个Java进程的典型内存配置: 进程 堆 描述 NameNode 8 GB 每100TB数据或每100W个文件大约占用NameNode堆1GB的内存 SecondaryNameNode...本文由 Lansonli 原创,首发于 CSDN博客 大数据系列文章会每天更新,停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

    58320

    2021年数据HBase(十三):HBase读取和存储数据的流程

    HBase读取和存储数据的流程 一、HBase读取数据的流程 1、由客户端发起读取数据的请求, 首先先连接 zookeeper , 从zookeeper获取hbase:meta表被哪个regionServer...所管理meta表中主要记录了 hbase中各个表有那些region,以及每个region被哪个regionServer所管理hbase中非常特殊的元数据存储表, 此表只会有一个region 2、连接...regionServer中获取数据,先从 memStore  --> blockCache ---> storeFile  ---> 的Hfile 4、各个regionserver将读取到数据返回给...client , client根据需要过滤出需要的数据, 最后展示给调用者 二、HBase存储数据的流程 客户端的同步流程:  1、客户端发起写入数据的请求, 首先会先连接zookeeper, 从zookeeper...线程, 将多个文件合并最终合并为一个大文件(Hfile) 7、随着不断的合并, 这个大的Hfile文件也会越来越大, 当这个大的Hfile达到一定的阈值(最终10GB)后, 启动split机制, 将

    1.8K10

    2021年数据HBase(七):Hbase的架构!【建议收藏】

    Hbase的架构 一、Client 客户端,例如:发出HBase操作的请求。...例如:之前我们编写的Java API代码、以及HBase shell,都是CLient 二、Master Server 监控RegionServer , 处理RegionServer故障转移 处理元数据的变更..., 处理region的分配或移除 在空闲时间进行数据的负载均衡 通过Zookeeper发布自己的位置给客户端 三、Region Server 处理分配给它的Region , 负责存储HBase的实际数据...HBASE时,首先要写入MemStore 当MemStore快满时,整个排序的key-value数据将被写入HDFS中的一个新的HFile中 写入HFile的操作是连续的,速度非常快 物理上存储的是...HFile 九、WAL WAL全称为Write Ahead Log,它最大的作用就是 故障恢复 WAL是HBase中提供的一种高并发、持久化的日志保存与回放机制 每个业务数据的写入操作(PUT/DELETE

    67930

    2021年数据HBase(六):HBase的高可用!【建议收藏】

    HBase的高可用 考虑关于HBase集群的一个问题,在当前的HBase集群中,只有一个Master,一旦Master出现故障,将会导致HBase不再可用。...所以,在实际的生产环境中,是非常有必要搭建一个高可用的HBase集群的。 一、HBASE高可用的简介 HBase的高可用配置其实就是HMaster的高可用。...要搭建HBase的高可用,只需要再选择一个节点作为 HMaster,在HBase的conf目录下创建文件backup-masters,然后再backup-masters添加备份Master的记录。...backup节点出现即可 stop-hbase.sh start-hbase.sh 注意: 启动hbase的时候, 一定要确认 zookeeper 和 hadoop是启动良好的     额外: 单独启动节点...本文由 Lansonli 原创,首发于 CSDN博客 大数据系列文章会每天更新,停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

    1.9K20

    2021年数据HBase(十六):HBase的协处理器(Coprocessor)

    HBase的协处理器(Coprocessor) 一、起源 Hbase 作为列族数据库最经常被人诟病的特性包括: 无法轻易建立“二级索引” 难以执 行求和、计数、排序等操作 比如,在旧版本的(<0.92...)Hbase 中,统计数据表的总行数,需要使用 Counter 方法,执行一次 MapReduce Job 才能得到。...虽然 HBase数据存储层中集成了 MapReduce,能够有效用于数据表的分布式计算。...二、协处理器主要的分类 ObServer Endpoint 三、HBase的协处理器_ObServer ObServer 类似于传统数据库中的触发器,当发生某些事件的时候这类协处理器会被 Server...的协处理器总结 Hbase的协处理器主要有二类: ObServer 和 Endpoint ObServer: 可以将其看做是拦截器(过滤器 触发器), 可以基于这种协处理器对Hbase相关操作进行监控

    1.3K20

    2021年数据HBase(十五):HBase的Bulk Load批量加载操作

    HBase的Bulk Load批量加载操作 一、Bulk Load 基本介绍         很多时候,我们需要将外部的数据导入到HBase集群中,例如:将一些历史的数据导入到HBase做备份。...我们之前已经学习了HBase的Java API,通过put方式可以将数据写入到HBase中,我们也学习过通过MapReduce编写代码将HDFS中的数据导入到HBase。...此时,在需要将海量数据写入到HBase时,通过Bulk load(容量加载)的方式,会变得更高效。可以这么说,进行大量数据操作,Bulk load是必不可少的。        ...对一批数据, 提前按照HBase的Hfile文件格式存储好, 然后将Hfile文件格式数据直接放置到Hbase对应数据目录下, 让Hbase直接加载, 此时不需要Hbase提供大量的写入资源, 即可完成全部数据写入操作...存储到HBase中 , 数据量比较的庞大 数据所在位置: HDFS中, 数据格式为: CSV 分割符号为逗号 三、准备工作 1、在hbase中创建名称空间, 并创建hbase的表 # 创建名称空间

    2K20

    2021年数据HBase(十七):❤️HBase的360度全面调优❤️

    HBase的360度全面调优 一、⚡️通用调优⚡️ 1) NameNode的元数据备份使用SSD 2)  定时备份NameNode上的元数据     每小时或者每天备份,如果数据极其重要,可以5~10...备份可以通过定时任务复制元数据目录即可。 3)为NameNode指定多个元数据目录      使用dfs.name.dir或者dfs.namenode.name.dir指定。...:HBase一般都会同一时间操作大量的文件,根据集群的数量和规模以及数据动作,设置为4096或者更高。...但是不建议分配非常的堆内存,因为GC过程持续太久会导致RegionServer处于长期不可用状态,一般16~48G内存就可以了,如果因为框架占用内存过高导致系统内存不足,框架一样会被系统服务拖死。...(20-30 seconds is a good start).该值会直接关系到master发现服务器宕机的最大周期,默认值为30秒,如果该值过小,会在HBase在写入大量数据发生而GC时,导致RegionServer

    79410

    2021年数据HBase(五):HBase的相关操作-JavaAPI方式!【建议收藏】

    HBase的相关操作-JavaAPI方式 一、需求说明 某某自来水公司,需要存储大量的缴费明细数据。...以下截取了缴费明细的一部分内容 因为缴费明细的数据记录非常庞大,该公司的信息部门决定使用HBase来存储这些数据。并且,他们希望能够通过Java程序来访问这些数据。...","node1:2181,node2:2181,node3:2181"); // 如果告知hbase: 只需要设置zookeeper的地址即可, 因为zookeeper记录了hbase的各种元数据信息...在资料中,有一份10W的抄表数据文件,我们需要将这里面的数据导入到HBase中 说明: 在HBase中,有一个Import的MapReduce作业,可以专门用来将数据文件导入到HBase中 用法...: hbase org.apache.hadoop.hbase.mapreduce.Import 表名 HDFS数据文件路径 开始导入: 将资料中数据文件上传到Linux中 再将文件上传到hdfs

    1.2K10

    2021年数据HBase(十四):HBase的原理及其相关的工作机制

    HBase的原理及其相关的工作机制 一、HBase的flush刷新机制(溢写合并机制) hbase2.0: flush溢写的流程说明 flush溢写流程:   hbase 2.0版本后的流程      ..., 不能改) 2) 在Hbase的2.0版本后, 这个管道中数据, 会尽可能晚刷新到磁盘中, 一直存储在内存中,  随着memStore不断的溢写, 管道中数据也会不断的变多 3) 当管道中数据,...达到一定的阈值后, hbase就会启动一个flush的刷新线程, 对pipeline管道中数据一次性全部刷新到磁盘上,而且在刷新的过程中, 对管道中数据进行排序合并压缩操作, 在HDFS上形成一个合并后的...1) 在Hbase中, 所有的数据随机操作,都是对内存中数据进行处理, 如果是添加, 在内存中加入数据, 如果修改, 同样也是添加操作(时间戳记录版本),  如果删除,本应该是直接到磁盘中将数据删除,...唯一例外的是region的split可以正常进行,因为只有region server参与 表的数据读写还可以正常进行 因此master下线短时间内对整个hbase集群没有影响。

    67520

    hbase数据备份

    HBase Snapshot备份是HBase提供的一种高效、轻量级的数据备份方式。它基于HBase的快照机制,可以在不影响正常业务的情况下,快速创建数据表的完整副本。...Snapshot备份原理 当创建HBase Snapshot时,HBase不会立即复制表的数据,而是只复制一份数据表的元数据并记录一份数据表当前所有HFile的文件列表。...HBase Snapshot备份的原理在于,它不实际复制数据文件,而是记录下需要备份的数据所在的HFile的位置信息。...在需要恢复数据时,HBase会根据Snapshot中的元数据和HFile列表重新构造出当时的数据状态。 ### 2. Snapshot备份操作步骤 1....通过上述介绍,我们可以看到,HBase Snapshot备份是一种高效、可靠的数据备份方法,适用于需要周期性备份重要数据场景。

    12910

    2021年数据HBase(九):Apache Phoenix的安装

    安装Phoenix 一、下载 大家可以从官网上下载与HBase版本对应的Phoenix版本。对应到HBase 2.1,应该使用版本「5.0.0-HBase-2.0」。.../server/apache-phoenix-5.0.0-HBase-2.0-bin/phoenix-*.jar /export/server/hbase-2.1.0/lib/ #  进入到hbase...将hbase-site.xml分发到每个节点 scp hbase-site.xml node2:$PWD scp hbase-site.xml node3:$PWD 4、将配置后的hbase-site.xml...-HBase-2.0-bin/bin/ 5、重新启动HBase stop-hbase.sh start-hbase.sh 6、启动Phoenix客户端,连接Phoenix Server 注意:第一次启动...本文由 Lansonli 原创,首发于 CSDN博客 大数据系列文章会每天更新,停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

    1.7K40

    HBase原理 | HBase RegionServer宕机数据恢复

    HBase采用类LSM的架构体系,数据写入并没有直接写入数据文件,而是会先写入缓存(Memstore),在满足一定条件下缓存数据再会异步刷新到硬盘。...如果不幸一旦发生RegionServer宕机或者其他异常,这种设计可以从HLog中进行日志回放进行数据补救,保证数据不丢失。HBase故障恢复的最大看点就在于如何通过HLog回放补救丢失数据。...其中sequenceid是日志写入时分配给数据的一个自增数字,先写入的日志数据sequenceid小,后写入的sequenceid。 2....个人认为原因最有可能是写入小文件之后,同一个Region的不同日志数据可以按照文件名中sequenceid由小到进行顺序回放,完全可以模拟当时数据写入的流程,不会有丝毫偏差。...那这种情况下前后两次更新时间戳还一致,颠倒顺序就办法分出哪个版本了呀!

    2.8K30

    HBase数据定义

    # HBase数据定义 HBase Shell 数据定义 创建表 表相关操作 查看某个表是否存在 查看当前HBase所有的表名 查看选定表的列族及其参数 修改表结构 删除表 清空数据 # HBase...Shell HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用; [root@localhost bin]# hbase shell HBase Shell; enter...exit 推出hbase shell # 数据定义 命令 描述 create 创建指定模式的新表 alter 修改表的结构,如添加新的列族 describe 展示表结构的信息,包括列族的数量与属性...删除表 truncate 如果只是想删除数据而不是表结构,用truncate来禁用表、删除表并自动重建表结构 # 创建表 语法 create '表名','列族名' 描述 必须指定表名和列族...'delete' => 'f3' 注意 删除列族时,表中至少有两个列族; # 删除表 语法 disable 'teacher' drop ' teacher ' 注意:删除表之前需要先禁用表 # 清空数据

    1.1K20

    HBase数据操作

    # HBase数据操作 put delete 数据查询 get scan 数据统计 # put 语法 put '表名','行键','列族:列限定符','单元格值',时间戳 描述 必须指定表名、行键...只能插入单个数据 描述:如果指定的单元格已经存在,则put操作为更新数据; 单元格会保存指定VERSIONS=>n的多个版本数据 # delete 语法 delete '表名','行键','列族...,只有在数据产生合并时,数据才会被删除。...语法 count '表名' hbase(main):004:0> count ‘student’ 3 row(s) in 0.0440 seconds 在关系型数据库中,有多少条记录就有多少行,表中的行数很容易统计...而在 HBase 里,计算逻辑行需要扫描全表的内容,重复的行键是不纳入计数的,且标记为删除的数据也不纳入计数。

    1.8K30

    2021年数据HBase(四):HBase的相关操作-客户端命令式!【建议收藏】

    例如:执行建表语句、执行增删改查操作等等 1、进入HBase客户端命令操作界面 $ bin/hbase shell 2、查看帮助命令 hbase(main):001:0> help 3、查看当前数据库中有那些表...=> 'data'} 5、添加数据操作 向user表中插入信息,row key为rk0001,列族info中添加name列标示符,值为zhangsan hbase(main...http://hbase.apache.org/2.2/devapidocs/index.html 7、更新数据操作 1、更新数据值 更新操作同插入操作一模一样,只不过有数据就更新...=> 5 8、删除数据以及删除表操作 1、指定rowkey以及列名进行删除 删除user表row key为rk0001,列标示符为info:name的数据 hbase(main...Table must first be disabled) 9、 统计一张表有多少行数据 hbase(main):053:0> count 'user' 10、HBASE高级shell

    1.8K41

    Hbase-2.0.0_03_Hbase数据模型

    1. hbase数据模型 ? 1.1. HBase数据模型术语 Table HBase表由多行组成。...每个cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。 为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,HBASE提供了两种数据版本回收方式。...当HBase进行一次的压实时,将对墓碑进行处理,实际地除去那些死值,以及墓碑本身。如果删除一行时指定的版本大于行中任何值的版本,则你可以认为删除完整的行。 1.9.3....很明显,一旦一个重要的压缩运行,这样的行为将不再是这样了…(参见HBase中弯曲时间的垃圾收集)。 1.10. Sort Order 所有数据模型操作HBase都以排序的顺序返回数据。...有关HBase如何在内部存储数据的更多信息,请参阅keyvalue。 1.12.

    1.7K20

    2021年数据HBase(十一):Apache Phoenix的视图操作

    故此时,我们不再需要再使用Phoenix创建新的表,而是使用Phoenix中的视图,通过视图来建立与HBase表之间的映射,从而实现数据快速查询。...二、视图介绍 我们可以在现有的HBase或Phoenix表上创建一个视图。表、列蔟和列名必须与现有元数据完全匹配,否则会出现异常。当创建视图后,就可以使用SQL查询视图,和操作Table一样。...三、语法说明 create view "my_hbase_table" ( rowkey varchar primary key, 列族.列名1 数据类型, 列族.列名2 数据类型, ....... ) 考虑以下几个问题: 视图如何映射到HBase的表?...视图的名字必须是:命名空间.表名 视图中的列如何映射到HBase的列蔟和列?  列名必须是:列蔟.列名 视图中的类如何映射到HBase的ROWKEY?

    1.2K30
    领券