將CDH中的hive和hbase相互整合使用




一、.hbase與hive的兼容版本:

hive0.90與hbase0.92是兼容的,早期的hive版本與hbase0.89/0.90兼容,不需要自己編譯。

hive1.x與hbase0.98.x或則更低版本是兼容的,不需要自己編譯。

hive2.x與hbase1.x及比hbase1.x更高版本兼容,不需要自己編譯。

hive 1.x 與 hbase 1.x整合時,需要自己編譯

 

二、.hbase與hive的整合過程:

    1.修改 hive 的conf目錄下 hive-site.xml文件

<property>
                <name>hive.zookeeper.quorum</name>
                <value>node1,node2,node3</value>  
          </property>
          <property>
                <name>hive.server2.enable.doAs</name>
                <value>false</value>   
          </property>

1.可通過Hive -> 操作 -> 下載客戶端配置 的方式查看hive-site.xml文件內容,可得知 hive.zookeeper.quorum 配置的內容,默認配置即為 node1,node2,node3 即可。

2.可得知 hive.server2.enable.doAs 默認為 true,推薦修改為false,否則在使用官方推薦的hiveserver2/beeline的方式操作時,在利用HQL語句創建HBase時可能會出現異常。

3.可通過Hive -> 配置 -> 搜索欄中搜索 hive.server2.enable.doAs ,默認為勾選,取消勾選即可,即能修改配置為 false。

再當我們通過Hive -> 操作 -> 下載客戶端配置 的方式查看hive-site.xml文件內容,即可查看到hive.server2.enable.doAs已為false

             

 

 

 

 

2.重啟 hive、hbase

3.使用命令 beeline -u jdbc:hive2://node1:10000 -n root 進行連接

4.HIVE執行創建表語句:hbase表 映射 hive表,寫入的數據存儲在 hbase表中,"hbase.mapred.output.outputtable"可指定數據寫入到hbase表中

1.create database rimengshe;

2.use rimengshe;

3.創建hive表的同時也會創建出hbase表

# Hive中的表名test_tb;key字段映射hbase表中的rowkey;value字段映射cf1列簇下的val字段

CREATE TABLE ushio(key int, value string)

# 指定存儲處理器

STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

# 聲明列簇,列名

WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")

# hbase.table.name聲明HBase表名,為可選屬性默認與Hive的表名相同

# hbase.mapred.output.outputtable指定插入數據時寫入的表,如果以后需要往該表插入數據就需要指定該值

TBLPROPERTIES ("hbase.table.name" = "ushio", "hbase.mapred.output.outputtable" = "ushio");

3.hbase表中添加數據:put '表名','rowkey值','列簇名:列名','列值'

put 'ushio','98','cf1:val','val_98'

put 'ushio','99','cf1:val','val_99'

put 'ushio','100','cf1:val','val_100'

4.hive表中添加數據:(會運行yarn)INSERT INTO table_name (field1, field2,...fieldN ) VALUES (value1, value2,...valueN );

insert into ushio values(2,'ushio');

5.hbase表 查詢表中的所有數據:scan '表名'

scan 'ushio'

6.hive表 查詢表中的所有數據:

select * from ushio;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM