Hbase写:
客户端向hbase服务器端发送写的请求时,hbase会同时进行两个动作,把记录写在WAL(write ahead log)日志文件中,每台服务器所有表都共享这个WAL文件。然后会写到memStore内存中,memStore是内存中的写入缓存区,如果memStore写满就刷新写到硬盘,生成HFile文件。当服务器宕机时memStore内存中的内容就没了,这时可以通过回放WAL日志文件恢复,回放的动作由hbase内部机制调用,不需要用户调用。
HFile存储在底层文件系统,hbase是Hadoop数据库,所以会在分布式文件系统hdfs上,HFile对应列族,一个列族可以有多个HFile文件,一个HFile文件是一个列族中的内容。在集群的每个节点上,每个列族有一个memStore.注意千万别把WAL关闭
Hbase读:
hbase读路径顺序 memStore==>blockCache==>HFile
现在metStore找,找不到就到到blockCache,再找不到就读取HFile文件到内存中,hbase使用blockCache缓存技术,blockCache保存从HFile中读取到内存的频繁访问的数据,每个列族都有自己的blockCache (block是建立索引的最小数据单元,block大小是可以调整的,默认是64kb)一个完整的行信息可能存放在多个HFile中,为了读出完整行,Hbase可能需要读取包含该行信息的所有HFile
hbase合并:
删除一条记录,就会在该记录上打上标记,被打上标记的记录就成了墓碑记录,该记录使用get和scan查询不到,但还是在HFile中。只有进行大合并的时候才会删除HFile中的墓碑记录。大合并:指定region的一个列族的所有HFile.合并完成后,这个列族的所有HFile文件合并成一个HFile文件,可以在shell中手动触发,但该动作相当耗资源。小合并是将多个小的HFile文件内容读取出来合并生成一个大的HFile,把新文件设置成激活状态,然后删除小的HFile
hbase的写和读,大合并和小合并
时间: 2024-10-12 22:41:48
hbase的写和读,大合并和小合并的相关文章
hbase内存规划(读多写少型和写多读少型)
//简单说来主要包括读多写少型和写多读少型),内存的相关配置却完全不同. 1.针对不同应用场景,对多种工作模式下的参数进行详细说明,并结合相关示例对集群规划中最核心模块-内存规划进行介绍.2.HBase中内存规划直接涉及读缓存BlockCache.写缓存MemStore,影响系统内存利用率.IO利用率等资源以及读写性能等,重要性不言而喻.3.主要配置也是针对BlockCache和MemStore进行,4.然而针对不同业务类型(简单说来主要包括读多写少型和写多读少型),内存的相关配置却完全不同.5
读<;<;大数据时代>;>;的一些感想
第一次听说<<大数据时代>>这本书,是在网上看到的央视搞的一个2013中国好书评选活动推荐的25本"中国好书"的榜单中看到的.然后迅速上豆瓣上查看了一下对该书的评价,一看非常高,再加上央视的推荐是从2013在中国出版的40册图书中选出25本,可以说是精华了.果断定了一本,花了三天时间读完了. 大数据这个名词或者说概念从被提出开始,经过短短几年的发展,已经传的沸沸扬扬了,经常见诸媒体上.好像哪家媒体的科技板块每天不弄一些这样的新闻条,它就显得不够档次一样.这是
ATS读大文件(命中)
大文件存储结构和小文件完全不同,小文件占一个fragment就够了,小文件占若干个fragment.小文件第一个是doc只存一些信息数据,包括http头,资源的content存在于若干个fragment中,默认每个fragment展1048576字节,在proxy.config.cache.target_fragment_size中可以改.一个fragment中有72个字节是doc,剩下的是资源的content.ats会先读第一个fragment,然后以循环的方式读取若干个fragment,直到
C#向文件写、读三种方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace FileTest { class Program { static void Main(string[] args) { WriteFile(); ReadFile(); Console.ReadKey(); }
Linux命令之大文件切分与合并
当面临将一个大文件进行切分时,linux的split命令是很好的选择.它包含多种参数,支持按行.大小进行切分. split命令的语法如下: split [--help][--version][-a ][-b][-C ][-l ][要切割的文件][输出文件名前缀] 对应的参数描述如下: -a, --suffix-length=N 使用的后缀长度 (默认为 2) -b, --bytes=SIZE 每个输出文件的字节大小 -C, --line-bytes=SIZE 每个输出文件每行的最大字节大小 -d
win10 UWP 你写我读
想要电脑读出我们写的内容,在win10,很简单 其实这个技术在windows7就有了,但是现在win10让写出一个你写我读的软件很简单. 我们需要一个类MediaElement来播放,因为windows10的Markdown软件用的不是很好,所有我自己写一个. 这个软件我用了你写我读,https://github.com/lindexi/Markdown 点击 读出文本 在使用SpeechSynthesizer需要代码功能点麦克风 代码我放在model 代码很少就可以你写我读 private a
用户端实现DDR3 SDRAM写、读控制
一.项目目的 用户端的写.读控制主要功能需要按照FIFO IP核能够接受的逻辑,编写对应的逻辑功能,因此该控制器的输出应该按照FIFO IP核的时序进行. 1.用户写控制器实现 下面先对写控制器进行分析.FIFO IP核预留的写端口主要包括两个FIFO接口,其中一个可以缓存数据,另外一个可以缓存命令.为了保证数据在写入DDR3 SDRAM中时,不出线数据量和突发长度不一致的情况,我们可以先将需要写入的数据存到数据FIFO中,在对命令FIFO发送写命令相关的信息,这样就可以保证FIFO IP核接受
[转]用Python做一个自动生成读表代码的小脚本
写在开始(本片文章不是写给小白的,至少你应该知道一些常识!) 大家在Unity开发中,肯定会把一些数据放到配置文件中,尤其是大一点的项目,每次开发一个新功能的时候,都要重复的写那些读表代码.非常烦.来个实用小工具,大家随便看看. 1 #-*- coding: utf-8 -*- 2 #----------------------------------------------------------# 3 # 版本:python-3.5.0a3-amd64 4 # 功能:生成读表代码文件 5 #
FileOutputStream字节输出流和FileInputStream输入流(切记:out是输出到本地中,in是输入到程序中)这里介绍大文件和小文件的读取方式
//FileOutputStream public class FileOutputStreamDemo { /**字节流:适用于任何文件,以字节为单位,进行读写操作 *字节流操作步骤: *1.创建文件对象 *2.创建字节流 *3.读写操作 *4.关闭流 */ //字节流(写操作) public static void main(String[] args) { String messageString = "hello world"; byte[] bytes = me