HBase与Hive的关系

目录

什么是HBase?

什么是Hive?

异同之处

Hive-On-HBase

配置文件的修改

Hive中创建一个外部表关联HBase中的表


什么是HBase?

1.首先它是一个非关系型数据库,不对数据进行计算、加工,仅限于查询与存储,该数据库里面存储的是结构化与非结构化数据,因此不适合对其进行关联查询,像SQL语言那种JOIN操作是无法实现的。

2.基于hadoop架构,将数据存储至HDFS的DataNode中,提供高容错的支持,HBase中的RegionServer对其以region的格式进行管理,里面存储数据的模式是K-V键值对形式

3.需要zookeeper的支持以及提供master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作,客户端在HBase中进行读写需要访问zookeeper获取元数据表所在的RegionServer。

4.在面对大量数据的情况下,通过划分了region以及设置了合理的rowkey,能够提供高效的数据访问以及查询速度。

什么是Hive?

1.hive只是一个数据库管理工具,本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,提供了一个类SQL的查询语言,程序员上手简单。

2.和HBase一样,同样基于hadoop架构,将数据文件存储至DN上,编写的HQL语言最终通过hive的解析器、优化器、编译器、执行器转换为MapReduce运行。

3.由于是通过MR进行查询,一个简单的查询结果可能通过几个MR完成,因此延时较高。


异同之处

在大致了解了Hive与HBase后,我们可以不难看出,这两者没有什么必然联系,就像是大象与鲸鱼般的关系,任意一处都是不同点。

但是有一些相同点可以总结得出:

1.都基于hadoop架构,都在HDFS上进行数据存储。

2.都能够对数据进行增、删、改、查操作。

Hive-On-HBase

配置文件的修改

在hive-site.xml中添加zookeeper的参数属性:

    <property>
        <name>hive.zookeeper.quorum</name>
        <value>long1,long2,long3</value>
    </property>
#填主机名
    <property>
        <name>hive.zookeeper.client.port</name>
        <value>2181</value>
    </property>

Hive中创建一个外部表关联HBase中的表

首先在hive中创建外部表

CREATE EXTERNAL TABLE relevance_hbase_student(
id int,
name string,
age int)
STORED BY 
'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = 
":key,info:name,info:age") 
TBLPROPERTIES ("hbase.table.name" = "hbase_student_table");

这样就能使用hive函数进行分析了

select * from relevance_hbase_student;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值