hbase查看表结构_HBase 与Hive的集成
HBase與Hive的對比
Hive
數據倉庫
Hive的本質其實就相當于將HDFS中已經存儲的文件在Mysql中做了一個雙射關系,以方便使用HQL去管理查詢。
用于數據分析、清洗
Hive適用于離線的數據分析和清洗,延遲較高。
基于HDFS、MapReduce
Hive存儲的數據依舊在DataNode上,編寫的HQL語句終將是轉換為MapReduce代碼執行。
HBase
數據庫
是一種面向列存儲的非關系型數據庫。
用于存儲結構化和非結構化的數據
適用于單表非關系型數據的存儲,不適合做關聯查詢,類似JOIN等操作。
基于HDFS
數據持久化存儲的體現形式是Hfile,存放于DataNode中,被ResionServer以region的形式進行管理。
延遲較低,接入在線業務使用
面對大量的企業數據,HBase可以直線單表大量數據的存儲,同時提供了高效的數據訪問速度。
HBase與Hive集成使用
尖叫提示:HBase與Hive的集成在最新的兩個版本中無法兼容。所以,我們只能含著淚勇敢的重新編譯:hive-hbase-handler-1.2.2.jar!!好氣!!
環境準備
因為我們后續可能會在操作Hive的同時對HBase也會產生影響,所以Hive需要持有操作HBase的Jar,那么接下來拷貝Hive所依賴的Jar包(或者使用軟連接的形式)。
export HBASE_HOME同時在hive-site.xml中修改zookeeper的屬性,如下:
<property>案例一
目標:建立Hive表,關聯HBase表,插入數據到Hive表的同時能夠影響HBase表。
分步實現:
在Hive中創建表同時關聯HBase
提示:完成之后,可以分別進入Hive和HBase查看,都生成了對應的表
在Hive中創建臨時中間表,用于load文件中的數據
提示:不能將數據直接load進Hive所關聯HBase的那張表中
向Hive中間表中load數據
通過insert命令將中間表中的數據導入到Hive關聯HBase的那張表中
查看Hive以及關聯的HBase表中是否已經成功的同步插入了數據
hive> select * from hive_hbase_emp_table;
HBase:
hbase> scan ‘hbase_emp_table’
案例二
目標:在HBase中已經存儲了某一張表hbase_emp_table,然后在Hive中創建一個外部表來關聯HBase中的hbase_emp_table這張表,使之可以借助Hive來分析HBase這張表中的數據。
注:該案例2緊跟案例1的腳步,所以完成此案例前,請先完成案例1。
分步實現:
在Hive中創建外部表
關聯后就可以使用Hive函數進行一些分析操作了
簡書:https://www.jianshu.com/u/0278602aea1d
CSDN:https://blog.csdn.net/u012387141
總結
以上是生活随笔為你收集整理的hbase查看表结构_HBase 与Hive的集成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有时候明明没有问题的程序为什么通不过?
- 下一篇: 二分搜索之x平方根(保留整数)