中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hive與hbase如何集成

發布時間:2021-12-08 13:54:09 來源:億速云 閱讀:122 作者:小新 欄目:云計算

這篇文章主要介紹了hive與hbase如何集成,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一 、簡介

Hive是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供完整的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。
Hive與HBase的整合功能的實現是利用兩者本身對外的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不存在則自行創建,或者把hive-default.xml.template文件改名后使用。

3. 拷貝hbase-0.90.3-cdh4u1.jar到所有hadoop節點(包括master)的hadoop/lib下。

4. 拷貝hbase/conf下的hbase-site.xml文件到所有hadoop節點(包括master)的hadoop/conf下。

注意,如果3,4兩步跳過的話,運行hive時很可能出現如下錯誤:


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.單節點啟動

#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.創建hbase識別的數據庫:


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導入數據

1) 新建hive的數據表:

CREATE TABLE hb_test (id INT, url STRING);
2)批量插入數據:

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. 查看數據

hive> select * from hbase_table_1; 

這時可以登錄Hbase去查看數據了
#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中插入的數據了。

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如何集成”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浙江省| 巴东县| 阿城市| 阜南县| 石首市| 饶平县| 扶沟县| 安吉县| 山西省| 通山县| 贞丰县| 霍州市| 沧州市| 灌南县| 普格县| 平顺县| 河源市| 旺苍县| 宕昌县| 磴口县| 枞阳县| 鹤岗市| 高邮市| 东阳市| 芮城县| 盐池县| 科技| 安徽省| 登封市| 松潘县| 汽车| 鄂尔多斯市| 临沭县| 壶关县| 江源县| 台安县| 布尔津县| 万盛区| 砚山县| 武汉市| 杨浦区|