hbase的写数据流程-hbase写入流程详细解释(4-19-92)
更新时间:2024-11-12 分类:HBase 浏览量:2
HBase本文目录一览:
- 1、HBase从入门到精通11:HBase数据保存过程和Region分裂
- 2、如何把rdd数据写入hbase
- 3、六、HBase写入流程
HBase从入门到精通11:HBase数据保存过程和Region分裂
1、HBase保存数据的流程有以下几个步骤:HBase表的列族在创建之初只有一个Region,随着插入数据的增多Region变得越来越大。
2、以fileServer为例,在使用默认的split策略--IncreasingToUpperBoundRegionSplitPolicy 的情况下,16个预分区Region, 则单个Resion容量达到 min(32,50),即32GB时分裂。
3、默认,HBase 在创建表的时候,会自动为表分配一个 Region,正处于混沌时期,start-end key 无边界,所有 RowKey 都往这个 Region里分配。
4、hbase分区会自动裂变。根据查询相关资料信息,当Region的大小达到一定的阈值,该Region会自动分裂。
5、由于在HBase中数据存储是Key-Value形式,若向HBase中同一张表插入相同RowKey的数据,则原先存在的数据会被新的数据覆盖。设计的RowKey应均匀的分布在各个HBase节点上,避免数据热点现象。
如何把rdd数据写入hbase
1、对于写操作,HBase提供了Put操作。一个Put操作就是一次写操作,它将指定Row Key的数据写入到HBase中。
2、Hive 跑批 建表 默认第一个字段会作为hbase的rowkey。导入数据 将userid插入到列key,作为hbase表的rowkey。
3、导入 ./hbase org.apache.hadoop.hbase.mapreduce.Driver import 表名 数据文件位置 其中数据文件位置可为本地文件目录,也可以分布式文件系统hdfs的路径。
4、主要有三种方法:Put API Put API可能是将数据快速导入HBase表的最直接的方法。但是在导入【大量数据】时不建议使用!但是可以作为简单数据迁移的选择,直接写个代码批量处理,开发简单、方便、可控强。
5、需要注意的是要和initTableMapperJob 方法指定的数据类型一致。该过程会自动从指定hbase表内一行一行读取数据进行处理。
六、HBase写入流程
1、对于写操作,HBase提供了Put操作。一个Put操作就是一次写操作,它将指定Row Key的数据写入到HBase中。
2、和读相比,HBase写数据流程倒是显得很简单:数据先顺序写入HLog,再写入对应的缓存Memstore,当Memstore中数据大小达到一定阈值(128M)之后,系统会异步将Memstore中数据flush到HDFS形成小文件。
3、首先Hbase是依赖于HDFS和zookeeper的。 Zookeeper分担了Hmaster的一部分功能,客户端进行DML语句的时候,都是先跟ZK交互。
4、使用bulk load功能最简单的方式就是使用importtsv 工具。importtsv 是从TSV文件直接加载内容至HBase的一个内置工具。它通过运行一个MapReduce Job,将数据从TSV文件中直接写入HBase的表或者写入一个HBase的自有格式数据文件。
5、业务需求 flume需要从kafka获取数据并写入hbase 开始写的想法:按照flume的流程:一个source ,三个channel, 三个sink,因为我需要三个列族,如果使用官方的hbase sink那么需要三个sink。