日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Hive和HBase

發(fā)布時間:2025/3/21 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive和HBase 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、兩者的定義

hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡單的SQL查詢功能,它的本質(zhì)就是將SQL語句轉(zhuǎn)換為MapReduce任務(wù)進行運行。

HBase是一個高可靠性、高性能、面向列、可伸縮的一個開源的非關(guān)系型分布式數(shù)據(jù)庫(NoSQL),它參考了谷歌的BigTable建模,實現(xiàn)的編程語言為Java。

?

489034603

二、兩者的特點

Hive幫助熟悉SQL的人運行MapReduce任務(wù)。因為它是JDBC兼容的,同時,它也能夠和現(xiàn)存的SQL工具整合在一起。運行Hive查詢會花費很長時間,因為它會默認表中所有的數(shù)據(jù)。分區(qū)允許在數(shù)據(jù)集上運行過濾查詢,這些數(shù)據(jù)集存儲在不同的文件夾內(nèi),查詢的時候只指定文件夾(分區(qū))中的數(shù)據(jù)。

HBase通過存儲key/value來工作。它支持四種主要的操作:增加或者更新行,查看一個范圍內(nèi)的cell,獲取指定的行,刪除指定的行、列或者是列的版本。版本信息用來獲取歷史數(shù)據(jù)(每一行的歷史數(shù)據(jù)可以被刪除,然后通過Hbase compactions就可以釋放出空間)。雖然HBase包括表格,但是schema僅僅被表格和列簇所要求,列不需要schema。

?

489034603

三、兩者的區(qū)別 (加圖片下面的數(shù)字進學(xué)習(xí)交流羣)

1) Hive中的表是純邏輯表,就只是表的定義等,即表的元數(shù)據(jù)。Hive本身不存儲數(shù)據(jù),它完全依賴HDFS和MapReduce。這樣就可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為為一張數(shù)據(jù)庫表,并提供完整的SQL查詢功能,并將SQL語句最終轉(zhuǎn)換為MapReduce任務(wù)進行運行。而HBase表是物理表,適合存放非結(jié)構(gòu)化的數(shù)據(jù)。

2) Hive是基于MapReduce來處理數(shù)據(jù),而MapReduce處理數(shù)據(jù)是基于行的模式;HBase處理數(shù)據(jù)是基于列的而不是基于行的模式,適合海量數(shù)據(jù)的隨機訪問。

3) HBase的表是疏松的存儲的,因此用戶可以給行定義各種不同的列;而Hive表是稠密型,即定義多少列,每一行有存儲固定列數(shù)的數(shù)據(jù)。

4)Hive使用Hadoop來分析處理數(shù)據(jù),而Hadoop系統(tǒng)是批處理系統(tǒng),因此不能保證處理的低遲延問題;而HBase是近實時系統(tǒng),支持實時查詢。

5) Hive不提供row-level的更新,它適用于大量append-only數(shù)據(jù)集(如日志)的批任務(wù)處理。而基于HBase的查詢,支持和row-level的更新。

6) Hive提供完整的SQL實現(xiàn),通常被用來做一些基于歷史數(shù)據(jù)的挖掘、分析。而HBase不適用與有join,多級索引,表關(guān)系復(fù)雜的應(yīng)用場景。

?

489034603

四、兩者的整合

因為Hive和HBase擁有各自獨特的優(yōu)點,又都是在hadoop作為底層存儲,所以為什么不將它們整合到一起呢?

而實際上,現(xiàn)在Hive與HBase確實已經(jīng)進行整合了,它們整合功能的實現(xiàn)是利用兩者本身對外的API接口互相進行通信,相互通信主要是依靠hive_hbase-handler.jar工具類,整合方式如圖所示:

?

489034603

Hive集成HBase可以有效利用HBase數(shù)據(jù)庫的存儲特性,如行更新和列索引等。在集成的過程中注意維持HBase jar包的一致性。Hive集成HBase需要在Hive表和HBase表之間建立映射關(guān)系,也就是Hive表的列(columns)和列類型(column types)與HBase表的列族(column families)及列限定詞(column qualifiers)建立關(guān)聯(lián)。每一個在Hive表中的域都存在于HBase中,而在Hive表中不需要包含所有HBase中的列。

總結(jié)

以上是生活随笔為你收集整理的Hive和HBase的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。