HBase相关问题
HBase和Hive的异同之处?
共同点:HBase与Hive都是架构在Hadoop之上,底层存储都是使用HDFS
区别:
1). Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统。HBase是为了支持弥补Hadoop对实时操作的缺陷的项目。
2). hive是高延迟、结构化和面向分析的,hbase是低延迟、非结构化和面向编程
2). Hive的表是逻辑表,它本身不存储和计算数据,它完全依赖于HDFS和MapReduce,高延迟的特点。
3). HBase的表是物理表,hdfs作为底层存储,而HBase负责组织文件。 提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。
HBase和RDBMS的异同之处?
1.数据类型:HBase只有简单的字符串类型(压缩率高),所有的类型都是交由用户自己处理。而RDBMS有丰富的类型和存储方式。
2.数据操作:HBase只有很简单的插入、查询、删除、清空等操作,表和表之间是分离的,没有复杂的表和表之间的关系。而RDBMS通常有各式各样的函数和连接操作。
3.存储模式:HBase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的。而RDBMS是基于表格结构和行模式保存的 。
4.数据维护:HBase的更新操作不应该叫更新,它实际上是追加新的数据。而RDBMS是替换修改。
5.可伸缩性:Hbase这类分布式数据库就是为了这个目的而开发出来的,所以它能够轻松增加或减少硬件的数量,并且对错误的兼容性比较高。而RDBMS通常需要增加中间层才能实现类似的功能。
Hbase的优缺点
1. HBase列可以动态增加,并且列为空就不存储数据,节省存储空间。
2. Hbase自动切分数据,使得数据存储自动具有水平Scalability。
3. Hbase可以提供基于RowKey的高并发读写操作。
缺点: 不能支持条件查询,只支持按照Row key来查询.
什么时候选择HBase
1).超大数据量上高并发操作,高速插入,大量读取
2).记录非常稀疏
3).多版本数据
4).对于数据结构中字段不够确定或杂乱无章,很难按一个概念去进行抽取的数据适合用HBase。
HBase容错性
Master容错:Zookeeper重新选择一个新的Master
1).无Master过程中,数据读取仍照常进行;
2).无master过程中,region切分、负载均衡等无法进行;
RegionServer容错:定时向Zookeeper汇报心跳,如果一旦时间内未出现心跳
1).Master将该RegionServer上的Region重新分配到其他RegionServer上;
2).失效服务器上“预写”HLog日志由主服务器进行分割并派送给新的RegionServer
Zookeeper容错:Zookeeper是一个可靠地服务
1).一般配置3或5个Zookeeper实例。
HBase的Delete机理
Delete命令并不立即删除内容。实际上,它只是给记录打上删除的标记“墓碑”(tombstone)。墓碑记录不能在Get和Scan命令中返回结果。因为HFile是只读文件,这些墓碑记录直到执行一次大合并(major compaction)才会被删除。 详见HBase相关概念
HBase相关问题的更多相关文章
- HBase相关的一些点
1.在运行Hbase时,如果遇到出错之后: 可以通过{HBASE_HOME}目录,我的是在/usr/soft/hbase下的logs子目录中的日志文件查看错误原因.2.启动关闭Hadoop和HBase ...
- Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作
Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作 1.sparkstreaming实时写入Hbase(saveAsNewAPIHadoopDataset方法 ...
- HBase相关
hadoop和hbase节点添加和单独重启 有时候hadoop或hbase集群运行时间久了后,某些节点就会失效,这个时候如果不想重启整个集群(这种情况在很多情况下已经不被允许),这个时候可以单独重启失 ...
- HBase 相关API操练(三):MapReduce操作HBase
MapReduce 操作 HBase 在 HBase 系统上运行批处理运算,最方便和实用的模型依然是 MapReduce,如下图所示. HBase Table 和 Region 的关系类似 HDFS ...
- HBase 相关API操练(一):Shell操作
HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”. HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建. ...
- 暑假第五周总结(学习HBASE相关知识)
本周主要对HBASE的相关知识进行了学习,主要是通过视频的讲解了解到了HBASE的存储机制,HBASE的机制与普通的关系型数据库完全不同,HBASE以列进行存储,其主要执行的就是增删查操作,其更改主要 ...
- 大数据Hbase相关运维题
1.启动先电大数据平台的 Hbase 数据库,其中要求使用 master 节点的RegionServer.在 Linux Shell 中启动 Hbase shell,查看 HBase 的版本信息.(相 ...
- HBase篇--HBase操作Api和Java操作Hbase相关Api
一.前述. Hbase shell启动命令窗口,然后再Hbase shell中对应的api命令如下. 二.说明 Hbase shell中删除键是空格+Ctrl键. 三.代码 1.封装所有的API pa ...
- hbase 相关
----------------------------------------hbase的 安装---------------------------------------- 本地安装: 1 解压 ...
随机推荐
- 在 Java 应用程序中绑定 Bean 和数据
本指南介绍了 NetBeans IDE 对 Java 应用程序中 Bean 绑定和数据绑定的支持. 要学完本教程,您需要具备以下软件和资源. 软件或资源 要求的版本 NetBeans IDE 版本 7 ...
- 在Mac下使用ll,la,l
一: 用户目录下建立一个脚本“.bash_profile”,并输入以下内容即可: alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' 二: sou ...
- netty 网关 http请求 请求转发
https://netty.io/4.1/xref/io/netty/example/proxy/package-summary.html https://netty.io/4.1/xref/io/n ...
- 重点:怎样正确的使用QThread类(很多详细例子的对比,注意:QThread 中所有实现的函数是被创建它的线程来调用的,不是在线程中)good
背景描述: 以前,继承 QThread 重新实现 run() 函数是使用 QThread唯一推荐的使用方法.这是相当直观和易于使用的.但是在工作线程中使用槽机制和Qt事件循环时,一些用户使用错了.Qt ...
- C#版-Redis缓存服务器在Windows下的使用
Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存操作所以速度飞快,常见用法是存用户token.短信验证码等 官网显示Redis本身并没有Wind ...
- 009-Hadoop Hive sql语法详解4-DQL 操作:数据查询SQL-select、join、union、udtf
一.基本的Select 操作 语法SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference[WHERE whe ...
- Java内存解析 程序的执行过程
Java内存解析 栈.堆.常量池等虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同.本文将深入Java核心,简单讲解Java内存分配方面的知识. 首先我们先来讲解一下内存中的各个区域. ...
- Using RUNDLL32.exe to call a function within a dll
Using RUNDLL32.exe to call a function within a dll Rundll32 is a utility included with Window ...
- @Transactional(rollbackFor=Exception.class)的使用
转载: java阿里巴巴规范提示:方法[edit]需要在Transactional注解指定rollbackFor或者在方法中显示的rollback. 先来看看异常的分类 error是一定会回滚的 这里 ...
- modelform 使用
modelForm (1) model的知识点: class UserInfo(AbstractUser): tel = models.CharField(max_length=32) gender ...