亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Hive與HBase的整合

系統(tǒng) 4652 0

開場白:

Hive與HBase的整合功能的實現(xiàn)是利用兩者本身對外的API接口互相進行通信,相互通信主要是依靠hive_hbase-handler.jar工具類 ( Hive Storage Handlers ), 大致意思如圖所示:

口水:

?對 hive_hbase-handler.jar 這個東東還有點興趣,有空來磋磨一下。

一、2個注意事項:

1、需要的軟件有 Hadoop、Hive、Hbase、Zookeeper,Hive與HBase的整合對Hive的版本有要求,所以不要下載.0.6.0以前的老版本,Hive.0.6.0的版本才支持與HBase對接,因此在Hive的lib目錄下可以看見多了hive_hbase-handler.jar這個jar包,他是Hive擴展存儲的Handler ,HBase 建議使用 0.20.6的版本,這次我沒有啟動HDFS的集群環(huán)境,本次所有測試環(huán)境都在一臺機器上。

?????

2、運行Hive時,也許會出現(xiàn)如下錯誤,表示你的JVM分配的空間不夠, 錯誤信息 如下:

Invalid maximum heap size: -Xmx4096m

The specified size exceeds the maximum representable size.

Could not create the Java virtual machine.

解決方法:

/work/hive/bin/ext# vim util/execHiveCmd.sh 文件中第33行

修改,

HADOOP_HEAPSIZE=4096



HADOOP_HEAPSIZE=256

另外,在 /etc/profile/ 加入 export $HIVE_HOME=/work/hive

二、啟動運行環(huán)境

1啟動Hive

hive –auxpath /work/hive/lib/hive_hbase-handler.jar,/work/hive/lib/hbase-0.20.3.jar,/work/hive/lib/zookeeper-3.2.2.jar -hiveconf hbase.master=127.0.0.1:60000

加載 Hive需要的工具類,并且指向HBase的master服務器地址,我的HBase master服務器和Hive運行在同一臺機器,所以我指向本地。

2啟動HBase

/work/hbase/bin/hbase master start

3啟動Zookeeper

/work/zookeeper/bin/zkServer.sh start

三、執(zhí)行

在Hive中創(chuàng)建一張表,相互關(guān)聯(lián)的表

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");

在運行一個在Hive中建表語句,并且將數(shù)據(jù)導入

建表

????CREATE TABLE pokes (foo INT, bar STRING);

數(shù)據(jù)導入

????LOAD DATA LOCAL INPATH '/work/hive/examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;

在Hive與HBase關(guān)聯(lián)的表中 插入一條數(shù)據(jù)

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

運行成功后,如圖所示:

插入數(shù)據(jù)時采用了MapReduce的策略算法,并且同時向HBase寫入,如圖所示:

在HBase shell中運行 scan 'xyz' 和describe "xyz" 命令,查看表結(jié)構(gòu),運行結(jié)果如圖所示:

xyz是通過Hive在Hbase中創(chuàng)建的表,剛剛在Hive的建表語句中指定了映射的屬性? "hbase.columns.mapping" = ":key,cf1:val"? 和 在HBase中建表的名稱? " hbase.table.name " = "xyz"

在hbase在運行put命令,插入一條記錄

???? put 'xyz','10001','cf1:val',' www.javabloger.com '

在hive上運行查詢語句,看看剛剛在hbase中插入的數(shù)據(jù)有沒有同步過來,

????select * from hbase_table_1 WHERE key=10001;

如圖所示:

最終的效果

????以上整合過程和操作步驟已經(jīng)執(zhí)行完畢,現(xiàn)在 Hive中添加記錄HBase中有記錄添加,同樣你在HBase中添加記錄Hive中也會添加 , 表示Hive與HBase整合成功,對海量級別的數(shù)據(jù)我們是不是可以在HBase寫入,在Hive中查詢 喃?因為 HBase 不支持 復雜的查詢,但是HBase可以作為基于 key 獲取一行或多行數(shù)據(jù),或者掃描數(shù)據(jù)區(qū)間,以及過濾操作。而 復雜的 查詢可以讓 Hive 來完成 ,一個作為存儲的入口(HBase),一個作為查詢的入口(Hive)。如下圖示。

????

????

????呵呵,見笑了,以上只是我面片的觀點。

先這樣,稍后我將繼續(xù)更新,感謝你的閱讀。

??

Hive與HBase的整合


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 在线免费看a | 成人在线精品视频 | 狠狠色噜噜狠狠狠狠98 | 成人私人影院在线版 | 亚洲欧洲日韩在线 | 一级特黄aaa大片大全 | 成年人一级黄色片 | 国产区精品福利在线观看精品 | 国产精品久久久久影院免费 | 亚洲欧美日韩中文在线 | 亚洲精品美女一区二区三区乱码 | 婷婷五月在线视频 | 国产精品99久久久久久人 | 爽爽影院免费观看视频 | 欧美日本在线 | 成人欧美在线观看免费视频 | 日韩欧美成人免费中文字幕 | 国产精品久久久久久久久鸭 | 中文字幕 日韩有码 | 成年人黄色小视频 | 国产欧美日韩一区二区三区视频 | 五月天综合久久 | 99视频全部免费精品全部四虎 | 亚洲精品一区二区伦理 | www.五月天婷婷 | 久久国产亚洲欧美日韩精品 | 午夜网站在线观看免费网址免费 | 国产欧美成人免费观看视频 | 欧美在线一区二区三区精品 | 99久久免费精品视频 | 国产综合久久久久 | 久久 精品 | 亚洲精品久久一区二区无卡 | 久久国产一片免费观看 | 一级毛片免费不卡 | 欧美日韩在线观看免费 | 国产你懂的 | 天天在线天天综合网色 | 久久www免费人成精品香蕉 | 国产在线2021| 日产一二三四五六七区麻豆 |