溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

hbase hive整合

發(fā)布時(shí)間:2020-04-05 11:27:37 來(lái)源:網(wǎng)絡(luò) 閱讀:448 作者:ruanjianzhilu 欄目:關(guān)系型數(shù)據(jù)庫(kù)

        由于項(xiàng)目需要,使用hbase來(lái)存儲(chǔ)數(shù)據(jù)。使用hive來(lái)查詢數(shù)據(jù)。所以這里需要把hbase 和 hive整合使用。在網(wǎng)上找了下資料,其實(shí)也挺簡(jiǎn)單的,主要在配置。下面我把整合的步驟做一個(gè)記錄。

1.環(huán)境:hadoop1.0.4,hbase0.92.0,hive0.9.0

2.在hadoop  hbase   hive 環(huán)境都配好的情況下(如果沒(méi)有配置好請(qǐng)參考其他相關(guān)文檔),進(jìn)行如下操作。

  • 拷貝hbase-0.92.0.jar  hbase-0.92.0-tests.jar 到 hive/lib 目錄下(hive為hive的安裝根目錄)。如果在hive下已經(jīng)存在這兩個(gè)包的話,請(qǐng)將其刪除以后再進(jìn)行拷貝。
  • 修改hive/conf下的hive-site.xml文件。在底部添加如下內(nèi)容:

 

 

<property>
  <name>hive.metastore.local</name>
  <value>true</value>
  <description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>
</property>
<property>    
  <name>hive.exec.scratchdir</name>     
  <value>/data/hive/scratchdir</value>     
</property>  
<property>     
  <name>hive.querylog.location</name>     
  <value>/data/hive/logs</value>     
</property>     
<property>    
  <name>hive.aux.jars.path</name>     
  <value>file:///home/mt/hive/lib/hive-hbase-handler-0.9.0.jar,file:///home/mt/hive/lib/hbase-0.92.0.jar,file:///home/mt/hive/lib/zookeeper-3.4.3.jar</value>    
</property> 

 

 

 注意:我這里的hive-site.xml是自行創(chuàng)建的文件,在默認(rèn)情況下不存在這個(gè)文件。

  • 拷貝hbase-0.92.0.jar到所有hadoop節(jié)點(diǎn)(包括master)的hadoop/lib下。
  • 拷貝hbase/conf下的hbase-site.xml文件到所有hadoop節(jié)點(diǎn)(包括master)的hadoop/conf下。 

3.現(xiàn)在你可以嘗試啟動(dòng)hive了。

mt@ubuntu:~/hive$ bin/hive

接著可以做下測(cè)試了。

  • 創(chuàng)建hbase識(shí)別的數(shù)據(jù)庫(kù): 

CREATE TABLE hbase_table_1(key int, value string)  
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")  
TBLPROPERTIES ("hbase.table.name" = "xyz");  
hbase.table.name 定義在hbase的table名稱 
hbase.columns.mapping 定義在hbase的列族 

  • 使用sql導(dǎo)入數(shù)據(jù) :

新建hive的數(shù)據(jù)表 

CREATE TABLE pokes (foo INT, bar STRING); 

批量插入數(shù)據(jù) 

LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE  

使用sql導(dǎo)入hbase_table_1

 INSERT OVERWRITE TABLE hbase_table_1 SELECT * FROM pokes WHERE foo=86;  

  • 查看數(shù)據(jù) 

hive> select * from  hbase_table_1;  

這時(shí)可以登錄Hbase去查看數(shù)據(jù)了.

hbase(main):001:0> describe 'xyz' 

hbase(main):002:0> scan 'xyz'   
hbase(main):003:0> put 'xyz','100','cf1:val','www.360buy.com' 
這時(shí)在Hive中可以看到剛才在Hbase中插入的數(shù)據(jù)了。 
hive> select * from hbase_table_1 

  • hive訪問(wèn)已經(jīng)存在的hbase

使用CREATE EXTERNAL TABLE 

CREATE EXTERNAL TABLE hbase_table_2(key int, value string)  
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "cf1:val")  
TBLPROPERTIES("hbase.table.name" = "some_existing_table");  

 

 

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI