{eval=Array;=+count(Array);}
一、區(qū)別:
1、Hbase: 基于Hadoop數(shù)據(jù)庫,是一種NoSQL數(shù)據(jù)庫;HBase表是物理表,適合存放非結構化的數(shù)據(jù)。
2、hive:本身不存儲數(shù)據(jù),通過SQL來計算和處理HDFS上的結構化數(shù)據(jù),依賴HDFS和MapReduce;hive中的表是純邏輯表。
Hbase主要解決實時數(shù)據(jù)查詢問題,
Hive主要解決數(shù)據(jù)處理和計算問題,
二者通常協(xié)作配合使用。
二、適用場景:
1、Hbase:海量明細數(shù)據(jù)的隨機實時查詢,采集的網(wǎng)頁數(shù)據(jù)存儲;
2、hive:適用于離線的批量數(shù)據(jù)計算,一般用于查詢分析統(tǒng)計。
這兩個東西我都用過一段時間,很高興一起來討論這個問題。
首先來說一下這兩者都是hadoop大數(shù)據(jù)生態(tài)圈中的一員。底層的數(shù)據(jù)存儲都是使用的hdfs,除此之外其實兩者的關系并不大。
下面簡單的分別說一下兩者
1. Hbase的本質就是一個數(shù)據(jù)庫,一個nosql
2. 是一個具有主備模式、分布式、可動態(tài)增刪節(jié)點的分布式存儲系統(tǒng)
3.厲害之處:使用普通的硬件配置,實現(xiàn)了存儲并處理大量的數(shù)據(jù)
4. 特定 是列式存儲,所以是nosql
1.hive不能算做是數(shù)據(jù)庫,只能是hadoop的一個數(shù)據(jù)倉庫工具,
2 .可以將結構化的數(shù)據(jù)文件映射為一張 數(shù)據(jù)庫表
3.提供了HQL(類sql)查詢功能
4.在操作時,實際上是利用MapReduce去處理hdfs的數(shù)據(jù)
1. hive是為了簡化MapReduce而用的,并不是用類存放數(shù)據(jù)的,本質上還是在做運算,
Hbase是真正的數(shù)據(jù)庫,是用來存放超大量數(shù)據(jù)的,且插入、查詢速度極快
2.用途:hive用來做數(shù)據(jù)統(tǒng)計分析,分析hdfs數(shù)據(jù)
hbase用來做分布式nosql數(shù)據(jù)庫
上述就是對兩者的介紹和區(qū)別,歡迎大家評論討論! 關愛程序媛?。?!祝大家出任CTO,喜歡的歡迎關注,點贊?。?!哈哈。
Hbase是什么?
Hbase是一個架構在Hdfs文件系統(tǒng)上的列式存儲,是開源的,分布式,面向列的數(shù)據(jù)庫。適合于非結構化數(shù)據(jù)存儲的數(shù)據(jù)庫。
Hbase是一個高可靠、高性能、面向列、可伸縮的分布式存儲系統(tǒng),可以在廉價的PC Server搭建大規(guī)模結構化存儲集群.
1,HBase位于Hadoop生態(tài)系統(tǒng)的結構化存儲層。
2,HDFS作為其底層的文件存儲
3,MapReduct為Hbase提供高性能的計算能力
4,Zookeeper為HBase提供了穩(wěn)定的服務和failover的能力
Hive是什么?
hive是一個基于Hadoop的一個數(shù)據(jù)倉庫工具??梢詫⒔Y構化數(shù)據(jù)映射為一張數(shù)據(jù)庫表,并且提供sql的查詢能力,可以將sql換換為MapReduce任務進行。
下面我們看看Hive的架構圖:
1,用戶接口,hive主要有三個接口,CLI(CLI啟動的時候會同時氣筒一個Hive的副本),Client(hive的客戶端,連結hive server),web UI(通過瀏覽器訪問)
2,元數(shù)據(jù)存儲,hive將元數(shù)據(jù)存儲在數(shù)據(jù)庫中如:mysql。
3,Driver(解釋器、編譯器、優(yōu)化器、執(zhí)行器):完成詞法分析,語法分析,優(yōu)化,編譯,優(yōu)化以及查詢計劃的生成,隨后由MapReduce使用。
4,Hadoop ,hive的數(shù)據(jù)存儲在Hdfs中。大部分的查詢由MapReduce完成。
Hbase
上面我們分別看了Hbase的特點,hive的特點,那么Hbase和Hive的差別是什么以及各自的使用場景是什么?
Hbase和Hive 二者都是以Hdfs為文件存儲。
Hbase支持列擴展,可以對單元格修改。采取K-V的設計,因此查詢效率比較高,一般用于延遲忍耐低的場景;還有就是經(jīng)常需要擴展屬性,修改屬性場景。
Hbase的查詢一般通過命令窗口進行,語句比較負責,但是hive的采用標準的sql語法,門檻低,上手簡單。當然Hbase也有Phoenix可以去支持 sql這樣的語法操作。
下面看看hbase具體的應用場景:
千萬并發(fā)、PB存儲、KV基礎存儲、動態(tài)列、強同步、稀疏表、二級索引、SQL
對象存儲:頭條類、新聞類的的新聞、網(wǎng)頁、圖片存儲在HBase之中,一些病毒公司的病毒庫也是存儲在HBase之中。
時序數(shù)據(jù):HBase之上有OpenTSDB模塊,可以滿足時序類場景的需求。
推薦畫像:用戶的畫像,是一個比較大的稀疏矩陣。螞蟻的風控就是構建在HBase之上。
時空數(shù)據(jù):主要是軌跡、氣象網(wǎng)格之類,滴滴打車的軌跡數(shù)據(jù)主要存在HBase之中,另外在技術所有大一點的數(shù)據(jù)量的車聯(lián)網(wǎng)企業(yè),數(shù)據(jù)都是存在HBase之中
CubeDB OLAP:Kylin一個cube分析工具,底層的數(shù)據(jù)就是存儲在HBase之中,不少客戶自己基于離線計算構建cube存儲在hbase之中,滿足在線報表查詢的需求。
消息/訂單:在電信領域、銀行領域,不少的訂單查詢底層的存儲,另外不少通信、消息同步的應用構建在HBase之上。
消息/訂單:在電信領域、銀行領域,不少的訂單查詢底層的存儲,另外不少通信、消息同步的應用構建在HBase之上。
Hive 不能支持列擴展,支持追加,好像在新版本中可以支持修改,但是效率比較低。Hive處理的數(shù)據(jù)的吞吐量高,文件越大,hive的優(yōu)勢就約明顯。一半用于 延遲忍耐高的場景。
下面再來看看Hive的具體使用場景:
1,分析網(wǎng)絡日志。
2,ETL清洗數(shù)據(jù)。
3,構建數(shù)據(jù)倉庫。
4,數(shù)據(jù)挖掘
那么Hbase和Hive在具體的使用場景各自在什么位置呢?我們可以通過下圖來了解下:
通過ETL工具將數(shù)據(jù)源抽取到HDFS存儲,通過hive清洗處理和計算原始數(shù)據(jù),對數(shù)據(jù)進行標準化,統(tǒng)一化。如果是面向海量的查詢場景可以存儲Hbase,數(shù)據(jù)應用從Hbase中查詢數(shù)據(jù)。
最后在總結:Hbase和Hive本身都不能存儲數(shù)據(jù)。二者都是對Hdfs上的文件在做了一次組織。從而適應不同的場景。Hbase 在與查詢,動態(tài)列場景更有優(yōu)勢,但是無法進行數(shù)據(jù)分析和挖掘。二Hive本身無法在低延遲的場景下使用。Hive可以處理大量數(shù)據(jù)的ETL清洗。構建統(tǒng)一的標準的數(shù)據(jù)倉庫,從而提供基礎數(shù)據(jù),共上層數(shù)據(jù)分析。所以hive更加偏向于數(shù)據(jù)分析。
數(shù)據(jù)僧,祝愿每個在數(shù)據(jù)道路上的人越走越好。歡迎大家在評論區(qū)留言,大家一起討論。
HBase是一個數(shù)據(jù)模型,類似于Google的大表,旨在提供對大量結構化數(shù)據(jù)的快速隨機訪問。本教程提供了HBase的介紹,在Hadoop文件系統(tǒng)上設置HBase的過程以及與HBase shell交互的方法。它還介紹了如何使用java連接到HBase,以及如何使用java執(zhí)行HBase的基本操作。http://codingdict.com/article/8125
Hive是一個數(shù)據(jù)倉庫基礎設施工具,用于處理Hadoop中的結構化數(shù)據(jù)。它位于Hadoop的頂部,用于匯總大數(shù)據(jù),并使查詢和分析變得輕松。這是一個簡短的教程,介紹如何將Apache Hive HiveQL與Hadoop分布式文件系統(tǒng)結合使用。本教程可以成為您成為Hive成功Hadoop開發(fā)人員的第一步。http://codingdict.com/article/8149
要給你回答這兩個所有的底層為不太合適、我就給你舉一個易懂的例子。
Hbase 對應就的就是 Mongodb 非關系型數(shù)據(jù)
Hive 對應的就是 Mysql 關系型數(shù)據(jù)庫
如果你要深入研究、單單一個組件都能讓你隨便研究一年。
所以先從業(yè)務出發(fā)去考慮使用哪個、量上來了再研究優(yōu)化。
0
回答0
回答0
回答0
回答0
回答1
回答0
回答0
回答0
回答0
回答