再來說說HBase,它是Hadoop的子項目,當然也可以理解為一個工具。Hadoop的數據運算是由MapReduce完成的,而數據存儲是由HDFS完成的。HDFS是分布式存儲,這是Hadoop存儲數據的特點,但由此帶來的問題就是數據的無序和散亂。HBase的產生,很好地解決了這一問題。HBase能夠把這些數據映射成一張哈希表,那么,這些數據一旦成為具有實際存儲意義的表之后,就由無序變得有序,從而對數據搜索和操作的效率大大提高了。
2.Hive是在MapReduce的基礎上對數據進行處理,而MapReduce的數據處理依照行模式;而HBase為列模式,這樣使得對海量數據的隨機訪問變得可行。
3.HBase的存儲表存儲密度小,因而用戶可以對行定義成不同的列;而Hive是邏輯表,屬于稠密型,即定義列數,每一行對列數都有固定的數據。
4.Hive使用Hadoop來分析處理數據,而Hadoop系統是批處理系統,所以數據處理存在延時的問題;而HBase是準實時系統,可以實現數據的實時查詢。
5.Hive沒有row-level的更新,它適用于大量append-only數據集(如日志)的批任務處理。而基于HBase的查詢,支持和row-level的更新。
6.Hive全面支持SQL,一般可以用來進行基于歷史數據的挖掘、分析。而HBase不適用于有join,多級索引,表關系復雜的應用場景。
兩者使用場景的區別:
HBase的應用場景通常是采集網頁數據的存儲,因為它是key-value型數據庫,從而可以到各種key-value應用場景,例如存儲日志信息,對于內容信息不需要完全結構化出來的類CMS應用等。注意hbase針對的仍然是OLTP應用為主。
hive主要針對的是OLAP應用,其底層是hdfs分布式文件系統,重點是基于一個統一的查詢分析層,支撐OLAP應用中的各種關聯,分組,聚合類SQL語句。hive一般只用于查詢分析統計,而不能是常見的CUD操作,要知道HIVE是需要從已有的數據庫或日志進行同步最終入到hdfs文件系統中,當前要做到增量實時同步都相當困難。

2018-03-16
關鍵詞:
2509
電話咨詢
業務咨詢

TOP