标签:
HBase和Hive的异同之处?
共同点:
1). HBase与Hive都是架构在Hadoop之上的,都是用HDFS作为底层存储
区别:
2). Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。
3). Hive的表是逻辑表,它本身不存储和计算数据,它完全依赖于HDFS和MapReduce,高延迟的特点。
4). 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可以提供高并发读写操作的支持。
缺点:
1. 不能支持条件查询,只支持按照Row key来查询.
2. 暂时不能支持Master server的故障切换,当Master宕机后,整个存储系统就会挂掉.
什么时候选择HBase
1).超大数据量
2).记录非常稀疏
3).多版本数据
4).对于数据结构中字段不够确定或杂乱无章,很难按一个概念去进行抽取的数据适合用HBase。
标签:
原文地址:http://www.cnblogs.com/skyl/p/4800634.html