
正文
hbaseregioncompact的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
六、HBase写入流程
1、整个写入顺序图流程如下:1 客户端查找对应region 客户端根据要操作rowkey,查找rowkey对应的region。查找region的过程为通过zk获取到hbase:meta表所在region。
2、(1)当一个Region中的某个Store下的StoreFile的总大小查过某个值,由参数hbase.hregion.max.filesize设定(默认10g),该Region就会按照RowKey进行拆分。
3、和读相比,HBase写数据流程倒是显得很简单:数据先顺序写入HLog,再写入对应的缓存Memstore,当Memstore中数据大小达到一定阈值(128M)之后,系统会异步将Memstore中数据flush到HDFS形成小文件。
4、该过程会自动从指定hbase表内一行一行读取数据进行处理。
5、使用bulk load功能最简单的方式就是使用importtsv 工具。importtsv 是从TSV文件直接加载内容至HBase的一个内置工具。它通过运行一个MapReduce Job,将数据从TSV文件中直接写入HBase的表或者写入一个HBase的自有格式数据文件。
相关问答
Q1: Region详解
1、理论:各个区域都有一个基准花费(一般是54锤,水渠36锤),但是随着你的科技和人文发展,会使系数一直增大,而使的区域的花费增加。
2、功能分区法:按照不同的功能需求,城市中可以划分为商业区、住宅区、工业区等。 功能分区法:按照不同的功能需求,城市中可以划分为商业区、住宅区、工业区等。
3、area0叫骨干区域,除它外其余称之为普通区域。普通区域之间不能直接互访,只能通过area0来互访。分成多个区域有利于减少路由条目,减低路由器的负担。还能针对某一area做策略。
Q2: region下所有的hfile默认存放
/hbase/.archive HBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到.archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理。
依次加载各部分的HFileBlock(load-on-open所有部分都是以HFileBlock格式存储):data index block、meta index block、FileInfo block、generate bloom filter index、和delete bloom filter。HFileBlock的格式会在下面介绍。
KeyValue以字节数组的形式存储,包含以下部分:Key的格式如下:HBase会自动挑选小的临近的HFiles将它们重新写到一些大的HFiles中。这个过程称为次压缩。
这个参数默认是10,如果某个hfile跨越的region数超过10个就会报上述Exception。解决方案:将hbase.bulkload.retries.number这个参数设置为更大的值,比如目标表的region数量或者将这个参数设置成0,0表示不断重试直到成功。
因为table是按照rowkey来划分region的,region默认的大小为256M,通常会设置得更高1G,2G,4G等,所以hfile不可能比region的的值要大。
Q3: HBase存储架构
HBase采用了类似Google Bigtable的数据模型,即一个稀疏的、分布式的、持久化的多维映射表,每个表都由行键、列族、列限定符和时间戳组成。
hbase的核心数据结构为LSM树。LSM树分为内存部分和磁盘部分。内存部分是一个维护有序数据集合的数据结构。RowKey与nosql数据库们一样,RowKey是用来检索记录的主键。
hbase的核心数据结构为LSM树。LSM树分为内存部分和磁盘部分。内存部分是一个维护有序数据集合的数据结构。
但在HBase中,数据表的行组成是由多个列族组成的,每个列族下面又有许多列。列族是HBase中存储数据的最小单位,而列则是列族中的最小单位。每个列族下面可以有多个列,每个列都可以存储多个版本的数据。
Q4: Hbase读写原理
hbase客户端通过rpc调用将put、delete数据请求提交到对应的regionserver,regionserver对请求进行处理,并将数据最终写入hfile中,进行持久化保存。hbase为了保证随机读取的性能,所以hfile里面的rowkey是有序的。
HBase采用了类似Google Bigtable的数据模型,即一个稀疏的、分布式的、持久化的多维映射表,每个表都由行键、列族、列限定符和时间戳组成。
为了减少flush过程对读写的影响,HBase采用了类似于两阶段提交的方式,将整个flush过程分为三个阶段:要避免“写阻塞”,貌似让Flush操作尽量的早于达到触发“写操作”的阈值为宜。
Hbase是Hadoop的一个存储组件可以提供低延迟的读写操作,它一般构建在HDFS之上,可以处理海量的数据。Hbase有个很好的特性是可以自动分片,也就是意味着当表的数据量变得很大的时候,系统可以自动的分配这些数据。
使用HBase提供的TableOutputFormat,原理是通过一个Mapreduce作业将数据导入HBase 还有一种方式就是使用HBase原生Client API(put)前两种方式因为须要频繁的与数据所存储的RegionServer通信。
无Master过程中,数据读取仍照常进行。但是,无master过程中,region切分、负载均衡等无法进行。
hbaseregioncompact的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、hbaseregioncompact的信息别忘了在本站进行查找喔。







