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++ ...
随机推荐
- Windows下如何枚举所有进程
要编写一个类似于 Windows 任务管理器的软件,首先遇到的问题是如何实现枚举所有进程.暂且不考虑进入核心态去查隐藏进程一类的,下面提供几种方法.请注意每种方法的使用局限,比如使用这些 API 所需 ...
- nload 实时网速查看
nload eth0 -u K Device eth0 [192.168.0.33] (1/1):=================================================== ...
- ASP怎么解除文件上传200kb限制
第一步:修改IIS设置,允许直接编辑配置数据库.打开,Internet信息服务第二步:先在服务里关闭iis admin service服务,找到windows\system32\inetsrv\下的m ...
- ThinkBox DOC
插件源码下载 @github https://github.com/Aoiujz/ThinkBox.git 插件使用方法 引入文件 //使用ThinkBox弹出框必须引入以上三个文件. //jQuer ...
- error while loading shared libraries: /usr/lib64/libc.so.6: invalid ELF header
在安装一个程序的时候提示libc.so.6过旧,但是查看libc.so的版本是最新的,于是尝试使用尝试软链接 ln -s /usr/lib64/libc.so /usr/lib64/libc.so. ...
- oracle导入导出小记
问题:11.2.0.3.0 导入 11.2.0.2.0 都是oracle 11g ,从0.3.0到0.2.0 报错,以为是版本问题,结果不是 采用impdp 导入exp导出的文件会报错 所以改为im ...
- 火狐 SSL 收到了一个弱临时 Diffie-Hellman 密钥的解决办法
连接 https网址 时发生错误. 在服务器密钥交换握手信息中 SSL 收到了一个弱临时 Diffie-Hellman 密钥. (错误码: ssl_error_weak_server_ephemera ...
- java模拟开锁
java模拟开锁 service qq:928900200 Introduction to Computer Science II: CSCI142Fall 2014Lab #1Instructor: ...
- qt下调用win32api 修改分辨率
在头文件中添加 #include <window.h> DEVMODE DevMode; EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, ...
- C# 向Http服务器送出 POST 请求
//向Http服务器送出 POST 请求 public string m_PostSubmit(string strUrl,string strParam) { string strResult = ...