這篇文章主要介紹了hive與hbase如何集成,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
10年積累的網站設計、做網站經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有天寧免費網站建設讓你可以放心的選擇與我們合作。
一 、簡介
Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結構化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。其優(yōu)點是學習成本低,可以通過類SQL語句快速實現(xiàn)簡單的MapReduce統(tǒng)計,不必開發(fā)專門的MapReduce應用,十分適合數(shù)據(jù)倉庫的統(tǒng)計分析。
Hive與HBase的整合功能的實現(xiàn)是利用兩者本身對外的API接口互相進行通信,相互通信主要是依靠hive_hbase-handler.jar工具類。
二、安裝步驟:
1 .Hadoop和Hbase都已經成功安裝了
Hadoop集群配置:http://www.linuxidc.com/Linux/2012-02/53632.htm
Hbase安裝配置:http://www.linuxidc.com/Linux/2012-02/54225.htm
2 . 拷貝hbase-0.90.3-cdh4u1.jar和zookeeper-3.3.3-cdh4u1.jar到hive/lib下。
注意:如何hive/lib下已經存在這兩個文件的其他版本(例如zookeeper-3.3.2.jar),建議刪除后使用hbase下的相關版本。
2. 修改hive/conf下hive-site.xml文件,在底部添加如下內容:
<!--
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp</value>
<description>Scratch space for Hive jobs</description>
</property>
<property>
<name>hive.querylog.location</name>
<value>/usr/local/hive/logs</value>
</property>
<property>
<name>hive.aux.jars.path</name>
<value>file:///usr/local/hive/lib/hive-hbase-handler-0.7.1-cdh4u1.jar,file:///usr/local/hive/lib/hbase-0.90.3-cdh4u1.jar,fi
le:///usr/local/hive/lib/zookeeper-3.3.1.jar</value>
</property>
注意:如果hive-site.xml不存在則自行創(chuàng)建,或者把hive-default.xml.template文件改名后使用。
3. 拷貝hbase-0.90.3-cdh4u1.jar到所有hadoop節(jié)點(包括master)的hadoop/lib下。
4. 拷貝hbase/conf下的hbase-site.xml文件到所有hadoop節(jié)點(包括master)的hadoop/conf下。
注意,如果3,4兩步跳過的話,運行hive時很可能出現(xiàn)如下錯誤:
view plaincopy
org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to connectto ZooKeeper but the connection closes immediately.
This could be a sign that the server has too many connections (30 is thedefault). Consider inspecting your ZK server logs for that error and
then make sure you are reusing HBaseConfiguration as often as you can. SeeHTable's javadoc for more information. at org.apache.hadoop.
hbase.zookeeper.ZooKeeperWatcher.
三、啟動Hive
1.單節(jié)點啟動
#bin/hive -hiveconf hbase.dwn01=master:490001
2 集群啟動:
#bin/hive -hiveconf hbase.zookeeper.quorum=dwn01,dwd01,dwd02,dwd03
如何hive-site.xml文件中沒有配置hive.aux.jars.path,則可以按照如下方式啟動。
bin/hive --auxpath /usr/local/hive/lib/hive-hbase-handler-0.8.0.jar,/usr/local/hive/lib/hbase-0.90.5.jar, /usr/local/hive/lib/zookeeper-3.3.2.jar-hiveconf hbase.zookeeper.quorum=dwn01,dwd01,dwd02,dwd03
四、測試:
1.創(chuàng)建hbase識別的數(shù)據(jù)庫:
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的列族
2.使用sql導入數(shù)據(jù)
1) 新建hive的數(shù)據(jù)表:
CREATE TABLE hb_test (id INT, url STRING);
2)批量插入數(shù)據(jù):
hive> LOAD DATA LOCAL INPATH '/tmp/id.txt' OVERWRITE INTO TABLE hb_test
3)使用sql導入hbase_table_1:
hive> INSERT OVERWRITE TABLE hbase_table_1 SELECT * FROM hb_test;
3. 查看數(shù)據(jù)
hive> select * from hbase_table_1;
這時可以登錄Hbase去查看數(shù)據(jù)了
#bin/hbase shell
hbase(main):001:0> describe 'xyz'
hbase(main):002:0> scan 'xyz'
hbase(main):003:0> put 'xyz','100','cf1:val','www.51.com'
這時在Hive中可以看到剛才在Hbase中插入的數(shù)據(jù)了。
4 hive訪問已經存在的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");
感謝你能夠認真閱讀完這篇文章,希望小編分享的“hive與hbase如何集成”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!
文章題目:hive與hbase如何集成
文章URL:http://aaarwkj.com/article36/iggdsg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站設計公司、外貿網站建設、網站制作、品牌網站設計、電子商務、企業(yè)網站制作
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)