Hadoop生態上幾個技術的關係與區別:hive、pig、hbase 關係與區別

以下內容轉自:http://www.linuxidc.com/Linux/2014-03/98978.htm

初接觸Hadoop技術的朋友肯定會對它體系下寄生的個個開源項目糊塗了,我敢保證Hive,Pig,HBase這些開源技術會把你搞的有些糊塗,不要緊糊塗的不止你一個,如某個菜鳥的帖子的疑問,when to use Hbase and when to use Hive?....請教了^_^沒關係這裏我幫大家理清每個技術的原理和思路。

Pig

一種操作hadoop的輕量級腳本語言,最初又雅虎公司推出,不過現在正在走下坡路了。當初雅虎自己慢慢退出pig的維護之後將它開源貢獻到開源社區由所有愛好者來維護。不過現在還是有些公司在用,不過我認爲與其使用pig不如使用hive。:)

Pig是一種數據流語言,用來快速輕鬆的處理巨大的數據。

Pig包含兩個部分:Pig Interface,Pig Latin。

Pig可以非常方便的處理HDFS和HBase的數據,和Hive一樣,Pig可以非常高效的處理其需要做的,通過直接操作Pig查詢可以節省大量的勞動和時間。當你想在你的數據上做一些轉換,並且不想編寫MapReduce jobs就可以用Pig.

Hive

不想用程序語言開發MapReduce的朋友比如DB們,熟悉SQL的朋友可以使用Hive開離線的進行數據處理與分析工作。

注意Hive現在適合在離線下進行數據的操作,就是說不適合在掛在真實的生產環境中進行實時的在線查詢或操作,因爲一個字“慢”。相反

起源於FaceBook,Hive在Hadoop中扮演數據倉庫的角色。建立在Hadoop集羣的最頂層,對存儲在Hadoop羣上的數據提供類SQL的接口進行操作。你可以用 HiveQL進行select,join,等等操作。

如果你有數據倉庫的需求並且你擅長寫SQL並且不想寫MapReduce jobs就可以用Hive代替。

HBase

HBase作爲面向列的數據庫運行在HDFS之上,HDFS缺乏隨即讀寫操作,HBase正是爲此而出現。HBase以Google BigTable爲藍本,以鍵值對的形式存儲。項目的目標就是快速在主機內數十億行數據中定位所需的數據並訪問它。

HBase是一個數據庫,一個NoSql的數據庫,像其他數據庫一樣提供隨即讀寫功能,Hadoop不能滿足實時需要,HBase正可以滿足。如果你需要實時訪問一些數據,就把它存入HBase。

你可以用Hadoop作爲靜態數據倉庫,HBase作爲數據存儲,放那些進行一些操作會改變的數據。

Pig VS Hive

Hive更適合於數據倉庫的任務,Hive主要用於靜態的結構以及需要經常分析的工作。Hive與SQL相似促使 其成爲Hadoop與其他BI工具結合的理想交集。

Pig賦予開發人員在大數據集領域更多的靈活性,並允許開發簡潔的腳本用於轉換數據流以便嵌入到較大的 應用程序。

Pig相比Hive相對輕量,它主要的優勢是相比於直接使用Hadoop Java APIs可大幅削減代碼量。正因爲如此,Pig仍然是吸引大量的軟件開發人員。

Hive和Pig都可以與HBase組合使用,Hive和Pig還爲HBase提供了高層語言支持,使得在HBase上進行數據統計處理變的非常簡單

Hive VS HBase

Hive是建立在Hadoop之上爲了減少MapReduce jobs編寫工作的批處理系統,HBase是爲了支持彌補Hadoop對實時操作的缺陷的項目 。

想象你在操作RMDB數據庫,如果是全表掃描,就用Hive+Hadoop,如果是索引訪問,就用HBase+Hadoop 。

Hive query就是MapReduce jobs可以從5分鐘到數小時不止,HBase是非常高效的,肯定比Hive高效的多

發佈了72 篇原創文章 · 獲贊 13 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章