Hadoop第11周练习—HBase基础知识
1 :数据即日志
内容
2 :HBase合并过程
内容
3 :HBase一致性
内容
书面作业1:数据即日志
内容
我们常说HBase是“数据即日志”的数据库,它是怎样修改和删除数据的?和Oracle这类传统的RDBMS有什么区别?
1.2 回答
HBase通过插入数据进行修改和删除,修改是根据时间戳完成的,删除时在插入的行上增加了删除标志。HBase的操作都是插入数据、顺序写,这点和关系型数据库中的写日志很相似,所以说HBase数据即日志。
HBase和Oracle传统的RDBMS区别:
1. 修改和删除数据方式不一样:在关系型数据做修改和删除数据时不会增加新的数据记录,直接对老数据进行修改或删除,一旦完成修改或删除,则原始数据发生变化。HBase HBase通过插入数据进行修改和删除。
2. 数据存储方式不一样: HBase是列式存储,传统Oracle关系型数据库是行式存储。HBase在做数据分析等场景比关系型数据库要好,数据分析时通常只需要读取部分列,HBase可以只读取这些列,而关系型数据库就需要全部列
3. 寻址方式不同:HBase的性能瓶颈在硬盘传输,而关系型数据库的瓶颈在硬盘寻道时间
4. 压缩效率不同:HBase等列式数据库相近的列里存的数据格式都很相近的,可以大幅度的压缩。所以压缩率会很高。行式数据库的压缩就没那么高,这样列式数据库不但节省了硬盘空间,也减少了io。但是对于联机事务系统的随机读写,还是行式数据库更合适。
书面作业2:HBase合并过程
内容
HBase合并storefile的原因是什么?在合并的过程中会做什么操作?如果在合并过程中恰好有涉及到有关storefile的查询发生,会发生什么情况(这个问题需要自行研究)?
2.2 回答
HBase合并Storefile的原因是由于HBase持久化数据保存在HDFS造成的,HDFS不擅长处理小文件,所以需要对Storefile进行合并。
HBase合并时做了两件事,第一删除有删除标记的数据和过期的旧版本数据,第二将多个小Storefile文件合并成一个大Storefile文件
如果在合并过程中恰好有涉及到有关Storefile查询发生,HBase先是把小Storefile加载到内存中用于用户在内存中检索相关数据,在内存中建立一个独立镜像备份专门提供查询,当合并完成后撤销内存空间中的镜像。
书面作业3:HBase一致性
内容
HBase具有怎样的一致性水平?
3.2 回答
HBase是最终一致性的系统,因为HBase是架构在Hadoop之上的数据库,“错误是常态”是Hadoop座右铭,在CAP理论中HBase为了满足可用性和分区容错性牺牲了一部分的数据一致性。
个datanode中,我们可以设置阀值只要有2份结果保存了我们就可以继续做下面的操作,在一定时间范围内允许第3份结果稍后一致性同步,这就是最终一致性。所以说hbase是适用于AP理论的系统,最终一致性也满足分布式集群的特点。
注:
CAP理论是由EricBrewer教授提出的,在设计和部署分布式应用的时候,存在三个核心的系统需求,这个三个需求之间存在一定的特殊关系。三个需求如下:
C: Consistency一致性
A: Availability可用性
P:Partition Tolerance分区容错性
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
Hadoop第11周练习—HBase基础知识的更多相关文章
- HBASE基础知识总结
HBASE基础知识总结 一,概要说明 文章首先回顾HBase 的数据模型和数据层级结构,对数据的每个层级的作用和架构进行了详细阐述:随后介绍了数据写入和读取的详细流程.先把架构图和流程图来坐镇. 架构 ...
- Hadoop第12周练习—HBase安装部署
1 1.1 1.2 :安装HBase 2.1 内容 运行环境说明 1.1 硬软件环境 线程,主频2.2G,6G内存 l 虚拟软件:VMware® Workstation 9.0.0 build-8 ...
- 肝了一周的 UDP 基础知识终于出来了。
我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 已提交此篇文章 运输层位于应用层和网络层之间,是 O ...
- HBASE基础知识
HBASE的集群的搭建HBASE的表设计HBASE的底层存储模型 HBase 是一个高可靠.高性能.面向列.可伸缩的分布式缓存系统.利用HBase 技术可在廉价PC Server上搭建起大规模结构化存 ...
- 第一周:Java基础知识总结(1)
1.软件开发的基本步骤: 1.分析问题,建立数据模型. 2.确定数据结构类型和算法. 3.编写程序. 4.调试程序. 2.Java语言 Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移 ...
- Hadoop第13周练习—HBase作业
1 :举例子说明HBase相对简单 1.1 1.2 回答 2 :设计HBase存储站内短信 2.1 2.2 回答 书面作业1:举例子说明HBase相对简单 请举出一例子,使 ...
- hbase基础知识一
1. hbase是什么 漫画学习hbase----最易懂的Hbase架构原理解析 http://developer.51cto.com/art/201904/595698.htm 1.1 hbase的 ...
- HBase基础知识摘要
HBASE 列式存储,设计思想参考BigTable 文档:http://hbase.apache.org/book.html hive适合数据分析,离线任务 hbase大数据实时查询 避免显式锁,提供 ...
- Object c 基础知识
文件类型说明:.h 头文件,用于定义类.实例变量及类中的方法等定义信息(interface). .m 源文件,定义方法体,可实现objce-c和c方法(implementation). .mm c++ ...
随机推荐
- 基本语法 protocols Category extension
转:http://blog.csdn.net/wangeen/article/details/16989529 protocol 本质就是一系列的method的声明,他并不像class是必须的选项 ...
- vector的 emplace 和 insert 以及使用vector进行iterator遍历 且 erase的时候注意事项
vector<int> first;//Size()==2 first.push_back(); first.push_back(); //first.insert(2); vector& ...
- python实现自动发送微博,当自己写博客时同步上去。
一.需求: 自己在github上搭建一个基于Jekyll的博客(http://beginman.cn/),每次写完博客后就要push上去,博客写的再好,基本上没人访问,为了增加访问量,就想利用起来微博 ...
- 不会用ant打包、部署项目的工程师,不是一个好程序员(测试)
副标题:利用ant脚本 自动构建svn增量/全量 系统程序升级包 首先请允许我这样说,作为开发或测试,你一定要具备这种本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方 ...
- 尝试制作了一个Panorama
照片拍的不太好, 效果如下(浏览器需要支持WebGL), 您可以用鼠标拖动浏览: //
- Jmeter属性和变量
一.Jmeter中的属性: 1.JMeter属性统一定义在jmeter.properties文件中,我们可以在该文件中添加自定义的属性 2.JMeter属性在测试脚本的任何地方都是可见的(全局),通常 ...
- Android 第三方开源库收集整理(转)
原文地址:http://blog.csdn.net/caoyouxing/article/details/42418591 Android开源库 自己一直很喜欢Android开发,就如博客签名一样, ...
- mac下忘记mysql密码, 重新设置mysql密码
step1: 苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server)step2:进入终端输入:cd /usr/local/m ...
- Flipping elements with WPF
http://yichuanshen.de/blog/2010/11/13/flipping-elements-with-wpf/ Have you already seen ForgottenTim ...
- SIP:用Riverbank的SIP创建C++库的Python模块
我们发现PyQt做的Python版的PyQt是如此好用,如果想把自己的C++库包装成Python模块该如何实现呢? 这里介绍下用SIP包装C++库时值得参考的功能实现: 需要Python模块中实现C+ ...