1. 程式人生 > >Pig和Hive的對比

Pig和Hive的對比

mapreduce 工具 同時 數據倉庫 vfk 語言 查詢 hive 我們

Pig

Pig是一種編程語言,它簡化了Hadoop常見的工作任務。Pig可加載數據、表達轉換數據以及存儲最終結果。Pig內置的操作使得半結構化數據變得有意義(如日誌文件)。同時Pig可擴展使用Java中添加的自定義數據類型並支持數據轉換。

Hive

Hive在Hadoop中扮演數據倉庫的角色。Hive添加數據的結構在HDFS(hive superimposes structure on data in HDFS),並允許使用類似於SQL語法進行數據查詢。與Pig一樣,Hive的核心功能是可擴展的。

什麽時候用Pig?

當你需要處理非格式化的分布式數據集時,如果想充分利用自己的SQL基礎,可以選擇Pig。使用Pig你無需自己構建MapReduce任務,有SQL背景的話學習起來比較簡單,開發速度也很快。

什麽時候用Hive?

有時我們需要收集一段時間的數據來進行分析,而Hive就是分析歷史數據絕佳的工具。要註意的是數據必須有一定的結構才能充分發揮Hive的功能。用Hive來進行實時分析可能就不是太理想了,因為它不能達到實時分析的速度要求(實時分析可以用HBase,Facebook用的就是HBase)。

註意:

盡管Pig性能強勁,要使用它開發人員必須掌握SQL之外的新知識,而Hive則與SQL非常相像。盡管Hive查詢語言HQL的命令有所局限,它還是取得了一定的成功。Hive為MapReduce提供了優秀的開源實現,它在分布式數據處理的同時避免了SQL對於數據存儲的局限。

所以現在使用Hive比較多,基本上很少用Pig!!!

Pig和Hive的對比