
hbase
鸭梨山大哎
life hard take it easy
展开
-
Hbase如何实现增删查改?
1. HDFS的文件append功能早期版本的HDFS不支持任何的文件更新操作,一旦一个文件创建、写完数据、并关闭之后,这个文件就再也不能被改变了。为什么这么设计?是为了与MapReduce完美配合,MapReduce的工作模式是接受一系列输入文件,经过map和reduce处理,直接产生一系列输出文件,而不是在原来的输入文件上做原位更新。为什么这么做?因为直接输出新文件比原位更新一个旧文件高效的多。在HDFS上,一个文件一直到它的close方法成功执行之后才会存在,才能被其他的client端所看见。如果原创 2021-02-01 15:41:09 · 1725 阅读 · 0 评论 -
spark读取Hbase数据
import com.hm.util.SparkHelperimport org.apache.hadoop.conf.Configurationimport org.apache.hadoop.hbase.HBaseConfigurationimport org.apache.hadoop.hbase.client.Resultimport org.apache.hadoop.hbase.io.ImmutableBytesWritableimport org.apache.hadoop.hbas原创 2021-01-21 14:21:32 · 708 阅读 · 0 评论 -
Hbase ImmutableBytesWritable数据类型
实现了WritableComparable接口public class ImmutableBytesWritableimplements WritableComparable<ImmutableBytesWritable>可用作key或value的字节序列。基于BytesWritable,该类不可调整大小,并且不像BytesWritable那样区分序列大小和当前容量。因此它相对来说是“不变的”。创建此类的新实例时,不会复制byte[],而只是引用它。当我们进行序列化时,将访问备份缓冲区。原创 2021-01-21 13:57:10 · 1625 阅读 · 0 评论 -
spark读取数据写入hbase
import com.hm.util.SparkHelperimport org.apache.hadoop.conf.Configurationimport org.apache.hadoop.hbase.{HColumnDescriptor, HTableDescriptor, TableName}import org.apache.hadoop.hbase.client.{Admin, Connection, ConnectionFactory, Put}import org.apache.h原创 2021-01-20 19:33:35 · 357 阅读 · 0 评论 -
Hbase shell练习题
第一大题:namespace的shell操作1、创建一个命名空间myns,同时设置属性author为自己,time为2020-05-11create_namespace 'myns', {'author' => 'michael', 'time' => '2020-05-11'}2、为myns添加一个属性company为huaweialter_namespace 'myns', {METHOD => 'set', 'company' => 'huawei'}3、列出所有原创 2020-12-25 15:50:46 · 4551 阅读 · 0 评论 -
Hbase block cache
HBase提供了两种不同的BlockCache实现来缓存从HDFS读取的数据:默认的堆上LruBlockCache和BucketCache(通常是堆外)。 本节讨论每种实现的优缺点,如何选择适当的选项以及每种实现的配置选项。LruBlockCache是原始实现,并且完全在Java堆中。 虽然BucketCache也可以是文件支持的缓存,但BucketCache是可选的,并且主要用于保持块缓存数据不在堆中。 在文件支持下,我们既可以在文件模式下使用它,也可以在mmaped模式下使用它。 我们还有pmem模式原创 2020-12-01 08:58:49 · 313 阅读 · 0 评论 -
Hbase与zookeeper
zookeeper分布式Apache HBase安装取决于正在运行的ZooKeeper集群。所有参与的节点和客户端都需要能够访问正在运行的ZooKeeper集群。默认情况下,Apache HBase为您管理ZooKeeper“集群”。作为HBase启动/停止过程的一部分,它将启动和停止ZooKeeper集群。您还可以独立于HBase管理ZooKeeper集成,只需将HBase指向它应使用的集群即可。要切换ZooKeeper的HBase管理,请使用conf / hbase-env.sh中的HBASE_MAN原创 2020-11-30 21:08:10 · 2089 阅读 · 0 评论 -
Hbase宕机
宕机分为 HMaster 宕机和 HRegisoner 宕机.如果是 HRegisoner 宕机, HMaster 会将其所管理的 region 重新分布到其他活动的 RegionServer 上,由于数据和日志都持久在 HDFS中,该操作不会导致数据丢失。所以数据的一致性和安全性是有保障的。如果是 HMaster 宕机, HMaster 没有单点问题, HBase 中可以启动多个 HMaster,通过Zookeeper 的 Master Election 机制保证总有一个 Master 运行。即 Zo原创 2020-11-30 20:19:24 · 350 阅读 · 0 评论 -
Hbase过滤器与scala编程
什么是Hbase过滤器?有什么用因为Hbase没有sql,一些复杂的查询就需要用过滤器来实现.过滤器为方便后续输出查看结果,先封装一个打印结果的函数def printScanner(resultScanner: ResultScanner): Unit ={ val value: util.Iterator[Result] = resultScanner.iterator() while(value.hasNext){ val result: Result = value原创 2020-11-30 19:54:56 · 393 阅读 · 0 评论 -
Hbase二级索引入门
本节的标题也可能是“如果我的表行键看起来像这样,但我也想像这样查询我的表该怎么办”。 列表上的一个常见示例是其中rowkey的格式为“ user-timestamp”,但是对于特定时间范围内的用户活动有报告要求。因此,由user进行选择很容易,因为它处于键的引导位置,而时间却不然。解决这一问题的最佳方法没有一个答案,因为这取决于…用户数数据大小和数据到达率报告要求的灵活性(例如,完全临时的日期选择与预先配置的范围)所需的查询执行速度(例如,对于某些临时报告,90秒对于某些人来说可能是合理的,而对于原创 2020-11-30 16:25:18 · 371 阅读 · 0 评论 -
Hbase面试题简要总结
读流程(1) Client访问Zookeeper,获取.META.表信息。(2) 从.META.表查找,获取存放目标数据的Region信息,从而找到对应的RegionServer。(3) 通过RegionServer获取需要查找的数据。(4) Regionserver的内存分为MemStore和BlockCache两部分,MemStore主要用于写数据,BlockCache主要用于读数据。读请求先到MemStore中查数据,查不到就到BlockCache中查,再查不到就会到StoreFile上读,并原创 2020-11-30 15:38:11 · 394 阅读 · 0 评论 -
Hbase compact入门
模糊概念区分StoreFile是HFile的外观。在压缩方面,StoreFile的使用似乎在过去很盛行。Store与ColumnFamily是同一件事。 StoreFiles与Store或ColumnFamily相关。当MemStore达到给定大小(hbase.hregion.memstore.flush.size)时,它将其内容刷新到StoreFile。存储中的StoreFiles数量随时间增加。压缩是一种通过合并存储来减少存储中StoreFile数量的操作,以提高读取操作的性能。压缩可能会占用大量原创 2020-11-30 14:50:14 · 745 阅读 · 0 评论 -
Hbase Region拆分入门
HBase通常根据hbase-default.xml和hbase-site.xml配置文件中的设置来处理区域划分。重要设置包括hbase.regionserver.region.split.policy,hbase.hregion.max.filesize,hbase.regionserver.regionSplitLimit。拆分的一种简化视图是,当区域增长到hbase.hregion.max.filesize时,将对其进行拆分。对于大多数使用模式,应使用自动拆分。有关手动区域分割的更多信息,请参见手动原创 2020-11-30 14:21:56 · 522 阅读 · 0 评论 -
Hbase优化入门
Hbase有哪些优化策略?预分区默认情况下,在创建 HBase 表的时候会自动创建一个 Region 分区,当导入数据的时候,所有的 HBase 客户端都向这一个 Region 写数据,直到这个 Region 足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的 Regions,这样当数据写入 HBase 时,会按照 Region 分区情况,在集群内做数据的负载均衡。RowKey优化将最近要经常访问的数据存储到一块,(怎么做呢?利用排序,因为hbase默认会对rowkey按照字原创 2020-11-30 11:48:09 · 304 阅读 · 0 评论 -
Hbase预分区入门
什么是Hbase 预分区?在建表的时候,可以给每个region划分不同的rowkey范围.之后在插入数据的时候,数据就会依据rowkey的不同进入到不同的region中.当然,每个region在hdfs上也存在不同的文件中.为什么要预分区?因为系统是到达一定大小自动拆分region,未必满足实际的需求.如何预分区?每一个region都维护着startRow与endRowKey,如果加入的数据符合某个region维护的rowKey范围,则该数据交给这个region维护。那么依照这个原则,我们可以将原创 2020-11-30 11:21:02 · 303 阅读 · 0 评论 -
Hbase数据模型入门
在 HBase 中,数据存储在表中,表中有行和列。这是一个与关系数据库 (RDBMS) 重叠的术语,但这不是一个有用的类比。相反,将 HBase 表视为多维Map会很有帮助。数据模型术语表HBase 表由多行组成。RowHBase 中的行由行键和一个或多个具有与其关联的值的列组成。行在存储时按行键按字母顺序排序。因此,行键的设计非常重要。目标是以相关行彼此靠近的方式存储数据。常见的行键模式是网站域。如果您的行键是域,则可能需要反向存储它们(org.apache.www,org.apache.mai原创 2020-11-30 10:40:26 · 339 阅读 · 0 评论 -
Hbase table CRUD操作及scala编程
Hbase shell操作1) 插入数据:put只能插入一个单元格指定 表名、行键、列名、列值、[时间戳]hbase(main):081:0> put 'ns3:emp','rk0001','base_info:name','smith'hbase(main):084:0> put 'ns3:emp','rk0001','base_info:empno','7369',19900000002) 使用scan查询数据**浏览表所有数据:已经排过序,先按rowkey,再按列族名、然后原创 2020-11-29 21:50:05 · 498 阅读 · 0 评论 -
Hbase table DDL操作及scala API操作
Hbase shell操作table建表直接创建ns3 是namespace,emp是表,base_info是列簇hbase(main):037:0> create 'ns3:emp','base_info'shell界面会有结果提示,如下,表示操作的结果创建了一个叫做emp的表=> Hbase::Table - ns3:emp使用变量 hbase(main):036:0> t = create 'ns3:employee','base_info'创建多原创 2020-11-29 18:37:40 · 544 阅读 · 0 评论 -
Hbase namespace操作入门
Hbase shell操作前提:启动zookeeper,之后要启动hbase,之后再启动hbase shellstart-hbase.shhbase shell如果不启动hbase 就启动hbase shell会报错的!ERROR: Can't get master address from ZooKeeper; znode data == null所有命令不需要分号!1) list_namespace:查询所有命名空间hbase(main):020:0> list_namesp原创 2020-11-29 14:44:38 · 1481 阅读 · 0 评论 -
Hbase roekey设计入门
什么是rowkey?为什么要对rowkey设计进行优化?HBase 中的行按行键按字典排序。此设计优化扫描,允许您将相关行或将一起读取的行彼此存储。但是,设计不佳的rowkey是热点的一个常见来源。当大量客户端流量定向到群集的一个节点或只有几个节点时,将发生热点。此流量可能表示读取、写入或其他操作。流量使负责托管该区域的单台计算机变得拥挤,导致性能下降,并可能导致区域不可用。这也可能对同一区域服务器托管的其他区域产生负面影响,因为该主机无法为请求的负载提供服务。设计数据访问模式,以便群集得到充分利用和均原创 2020-11-29 11:56:33 · 330 阅读 · 0 评论 -
Hbase体系架构与安装
是什么Hbase是一个非关系型的数据库体系架构client: 客户端zookeeper监控hmaster的状态,保证有且仅有一个活跃的hmaster,达到高可用.存储meta表的寻址入口感知regionserver的上下线信息,通知hmasterHmaster为regionserver分配region复杂regionserver的负载聚合regionserver管理本机的region切分运行时变大的regionHlog记录hbase的操作,优先写入Hlogregi原创 2020-11-07 18:02:50 · 188 阅读 · 0 评论 -
Hbase面试 描述 Hbase 中 scan 和 get 的功能以及实现的异同.
获取全部数据 @Test//测试性能public void test() throws IOException {Scan scan=new Scan();excuteScan(scan);}可以设置setbatch@Test //测试性能 public void test() throws IOException { Scan scan=new Scan(); //Set the maximum number of values to return for原创 2020-10-24 10:57:11 · 1217 阅读 · 0 评论 -
hbase jdbc相关
A table of data representing a database result set, which表示一组数据的数据库is usually generated by executing a statement that queries the database.*通常由执行查询数据库的语句生成。A ResultSet object maintains a cursor pointing*一个ResultSet对象保持光标指向to its current row o原创 2020-10-23 14:02:38 · 564 阅读 · 0 评论 -
Hbase简答
Hbase简答1、简述一下hbase是什么Hbase是一个Nosql的数据库,开源,分布式,可扩展,基于bigtable思想not only sql面向列式存储存储数十亿行*上百万列Hbase基于hadoopHbase是hadoop的数据库Hbase提供了近似实时读写的功能,利用率内存机制2、简述一下Hbase的表模型面向列数据以KV对进行存储,可以存储上百万数量级引入column family概念一个表可以包含多个column family .一个column fam原创 2020-10-20 17:31:40 · 325 阅读 · 0 评论