ITPub博客

首页 > 大数据 > 数据分析 > 好程序员大数据培训分享如何区分Hive与HBase

好程序员大数据培训分享如何区分Hive与HBase

原创 数据分析 作者:好程序员 时间:2020-10-20 16:52:51 0 删除 编辑

  好程序员大数据培训分享如何区分Hive HBase ,要想区分 Hive HBase 是有一定难度的。下面是给大家整理的关于从其各自的定义、特点、限制、应用场景等角度来进行分析,以帮助大家更好的理解、区分 Hive HBase

  HBase 是什么?

  ApacheHBase 是运行于 HDFS 顶层的 NoSQL(NotOnlySQL ,泛指非关系型的数据库 ) 数据库系统。区别于 Hive HBase 具备随即读写功能,是一种面向列的数据库。 HBase 以表的形式存储数据,表由行和列组成,列划分为若干个列簇 (rowfamily) 。例如:一个消息列簇包含了发送者、接受者、发送日期、消息标题以及消息内容。每一对键值在 HBase 会被定义为一个 Cell ,其中,键由 row-key( 行键 ) ,列簇,列,时间戳构成。而在 HBase 中每一行代表由行键标识的键值映射组合。 Hbase 目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。

  Hive 是什么?

  ApacheHive 是一个构建于 Hadoop( 分布式系统基础架构 ) 顶层的数据仓库,注意这里不是数据库。 Hive 可以看作是用户编程接口,它本身不存储和计算数据;它依赖于 HDFS(Hadoop 分布式文件系统 ) MapReduce( 一种编程模型,映射与化简;用于大数据并行运算 ) 。其对 HDFS 的操作类似于 SQL —名为 HiveQL ,简称 HQL ,它提供了丰富的 SQL 查询方式来分析存储在 HDFS 中的数据; HQL 经过编译转 MapReduce 作业后通过自己的 SQL 去查询分析需要的内容;这样一来,即使不熟悉 MapReduce 的用户也可以很方便地利用 SQL 语言查询、汇总、分析数据,降低学习成本,提高工作效率。而 MapReduce 开发人员可以把己写的 mapper reducer 作为插件来支持 Hive 做更复杂的数据分析。

  特性

  遵从JDBC Hive 不但可以让具 SQL 知识的用户来间接执行 MapReduce 作业,同时里面也整合了目前基于 SQL 的操作工具。不过,由于默认的数据读取是全表遍历的,其时间的耗费也不可避免地相对较大。尽管如此,不尽相同的 Hive 分区方法,其遍历读取的数据量也是能够有所限制的。 Hive 分区允许对存储在独立文件上的数据进行筛选查询,返回的是筛选后的数据。例如针对日期的日志文件访问,前提是该类文件的文件名包含日期信息。

  HBase 以键值对的形式储存数据。其包含了 4 种主要的数据操作方式 :

  1. 添加或更新数据行

  2. 扫描获取某范围内的 cells

  3. 为某一具体数据行返回对应的 cells

  4. 从数据表中删除数据行 / 列,或列的描述信息

  列信息可用于获取数据变动前的取值(透过HBase 压缩策略可以删除列信息历史记录来释放存储空间)。

  限制

  Hive 不支持常规的 SQL 更新语句,如:数据插入,更新,删除。因为其对数据的操作是针对整个数据表的。同时该特点也使得数据查询用时以数分钟甚至数小时来进行计算。此外,其 MapReduce 转换过程必须遵从预定义的转换规则。

  HBase 的数据查询是有一套属于自己类似 SQL 的操作语言的,这个需要一定的学习来掌握。此外,要运行 HBase ZooKeeper 是需要配备的。 ZooKeeper 是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

  应用举例

  Hive 适用于离线网络日志等数据量大、静态的数据查询。例如:用户消费行为记录,网站访问足迹等。但是不适用于联机实时在线查询的场合。

  HBase 能在大数据联机实时查询场合大展身手。例如: Fackbook 就利用其对用户间的传送的消息进行联机实时分析。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69913864/viewspace-2728233/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-03-20

  • 博文量
    342
  • 访问量
    146327