HBase写入数据的过程
来源:互联网 发布:全职高手周边衬衫淘宝 编辑:程序博客网 时间:2024/05/14 20:36
写入数据的详细过程?
见此地址 http://my.oschina.net/u/1464779/blog/265137
怎么确认写入操作成功呢?
只要在WAL(write ahead log要提前写的文件)和MemCache中同时写入成功了,那么hbase的put(写)操作成功了。
WAL:HBase为了保证写入数据的可靠性,提出了WAL的概念;打个比方:迅雷在下载的时候,会把大文件分解成一个一个的小碎片数据,然后把这些小碎片文件下载完后再组装起来,那么这个大文件就下载完了。
WAL就是这样的原理,先把文件的一块一块的下载下来,就算集群挂了,只要这些小文件都在,就不会有数据丢失,因为查询操作是从列簇中查找数据。
问:用户如何做到写入之后,立刻查询?
答:数据同时写入到WAL和MemCache中,用户查询的时候从MemCache中获取。
问:那么同时写入会不会增加IO操作?
答:为了保证数据的安全性和查询的快速性,增加的IO开销是必须的。
问:往内存中写,是不是非常容易造成内存溢出(就是内存满了)?
答:内存满了就写到磁盘文件(HFile)中,每次满了就写入一次到HFile中,HFile是HBase写入到hdfs的基本数据单位,
每次写到HFile中的文件大小是64k,一个HFile装一个Block,Block里面存放着数据和索引,Block是数据结构,而不
仅仅是数据文件,这样就会有大量的HFile写入到hdfs中,那么大量的HFile就会造成以后读写hdfs费时,
这就需要对HFile进行合并, 文件越多,读写的速度越慢。
对很多小的HFile合并成大的HFile,HFile是不断产生的,合并操作也是在不断的进行着,称作小合并minor compaction。
文件越多,读写的速度越慢,把大量HFile文件合并成一个大的HFile,称作大合并major compaction。
问:经过一次大合并之后,1个列簇与HFile的对应关系是什么?
答:1:1。也就是说一个列簇就形成了一个文件。
这时可以把每个HFile的大小调大,那么写入到hdfs中的文件就少了,但是
从节点有大量的读写操作,读操作意味着客户端要对hdfs操作,查询操作意味着从节点要负担很大的查询任务
0 0
- HBase写入数据的过程
- Hbase的数据写入
- hbase 数据写入过程习知
- hbase 写入过程
- hbase大规模数据写入的优化历程
- hbase大规模数据写入的优化历程
- hbase大规模数据写入的优化历程
- HDFS的数据写入过程
- HBase数据写入测试
- HBase数据写入测试
- Hbase 数据写入
- HBase读取数据的过程
- 数据写入磁盘的过程,咔咔的!
- mapreduce写入HBase,数据异常
- Hbase之批量数据写入
- 大数据技术-HBase:HBase写入路径
- elasticsearch写入数据存储的过程
- oracle数据库写入数据的过程
- HDU-2107-Founding of HDU
- Android实现图片的旋转与暂停
- POJ 3422 kaka's matrix trvals(费用流)
- Oracle拆分合并分区方法
- 修改MyEclipse10的Properties文件编码方式
- HBase写入数据的过程
- QRCode生成二维码
- php中的设计模式之--门面模式
- Java位运算
- 利用Jquery实现二级下拉菜单
- 求最大公约数
- cocos2dx《单机斗地主》源码解剖之二 把一副扑克牌打乱(洗牌)
- python 包装类型 与定制类
- 开源UI项目