大数据技术Hbase 和 Hive 详解
目錄
兩者的特點
各自的限制
應用場景
大數據技術Hbase?和?Hive?詳解,?今天給大家介紹一下關于零基礎學習大數據視頻教程之HBASE?和?HIVE?是多么重要的技術,那么兩者有什么區別呢???下面我們一起來看一下吧。
?ApacheHive?是一個構建在?hadoop?基礎設施之上的數據倉庫。通過?Hive?可以使用?HQL?語言查詢存放在?HDFS?上的數據。?HQL?是一種類?SQL?語言,這種語言最終被轉化為?Map/Reduce.?雖然?Hive?提供了?SQL?查詢功能,但是?Hive?不能夠進行交互查詢–因為它只能夠在?Haoop?上批量的執行?Hadoop?。
?ApacheHBase?是一種?Key/Value?系統,它運行在?HDFS?之上。和?Hive?不一樣,?Hbase?的能夠在它的數據庫上實時運行,而不是運行?MapReduce?任務。?Hive?被分區為表格,表格又被進一步分割為列簇。列簇必須使用?schema?定義,列簇將某一類型列集合起來?(?列不要求?schema?定義?)?。例如,“?message?”列簇可能包含:“?to?”,”?from?”“?date?”,“?subject?”,和”?body?”。每一個?key/value?對在?Hbase?中被定義為一個?cell?,每一個?key?由?row-key?,列簇、列和時間戳。在?Hbase?中,行是?key/value?映射的集合,這個映射通過?row-key?來唯一標識。?Hbase?利用?Hadoop?的基礎設施,可以利用通用的設備進行水平的擴展。
兩者的特點
?Hive?幫助熟悉?SQL?的人運行?MapReduce?任務。因為它是?JDBC?兼容的,同時,它也能夠和現存的?SQL?工具整合在一起。運行?Hive?查詢會花費很長時間,因為它會默認遍歷表中所有的數據。雖然有這樣的缺點,一次遍歷的數據量可以通過?Hive?的分區機制來控制。分區允許在數據集上運行過濾查詢,這些數據集存儲在不同的文件夾內,查詢的時候只遍歷指定文件夾?(?分區?)?中的數據。這種機制可以用來,例如,只處理在某一個時間范圍內的文件,只要這些文件名中包括了時間格式。
?HBase?通過存儲?key/value?來工作。它支持四種主要的操作:增加或者更新行,查看一個范圍內的?cell?,獲取指定的行,刪除指定的行、列或者是列的版本。版本信息用來獲取歷史數據?(?每一行的歷史數據可以被刪除,然后通過?Hbasecompactions?就可以釋放出空間?)?。雖然?HBase?包括表格,但是?schema?僅僅被表格和列簇所要求,列不需要?schema?。?Hbase?的表格包括增加?/?計數功能。
各自的限制
?Hive?目前不支持更新操作。另外,由于?hive?在?hadoop?上運行批量操作,它需要花費很長的時間,通常是幾分鐘到幾個小時才可以獲取到查詢的結果。?Hive?必須提供預先定義好的?schema?將文件和目錄映射到列,并且?Hive?與?ACID?不兼容。
?HBase?查詢是通過特定的語言來編寫的,這種語言需要重新學習。類?SQL?的功能可以通過?ApachePhonenix?實現,但這是以必須提供?schema?為代價的。另外,?Hbase?也并不是兼容所有的?ACID?特性,雖然它支持某些特性。最后但不是最重要的–為了運行?Hbase?,?Zookeeper?是必須的,?zookeeper?是一個用來進行分布式協調的服務,這些服務包括配置服務,維護元信息和命名空間服務。
應用場景
?Hive?適合用來對一段時間內的數據進行分析查詢,例如,用來計算趨勢或者網站的日志。?Hive?不應該用來進行實時的查詢。因為它需要很長時間才可以返回結果。
?Hbase?非常適合用來進行大數據的實時查詢。?Facebook?用?Hbase?進行消息和實時的分析。它也可以用來統計?Facebook?的連接數。
?Hive?和?Hbase?是兩種基于?Hadoop?的不同大數據技術–?Hive?是一種類?SQL?的引擎,并且運行?MapReduce?任務,?Hbase?是一種在?Hadoop?之上的?NoSQL?的?Key/vale?數據庫。當然,這兩種工具是可以同時使用的。就像用?Google?來搜索,用?FaceBook?進行社交一樣,?Hive?可以用來進行統計查詢,?HBase?可以用來進行實時查詢,數據也可以從?Hive?寫到?Hbase?,設置再從?Hbase?寫回?Hive?。
?
總結
以上是生活随笔為你收集整理的大数据技术Hbase 和 Hive 详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大牛们的资料与主页
- 下一篇: WordPress环境配置与安装