標籤:

Pig 和 Hive 在性能上有何差別?


1. 歷史上關於Pig和Hive的性能的爭論有很多,得出的結論也是千奇百怪。主要的原因是Pig和Hive在性能上的差別幾乎完全取決於使用者對用Pig/Hive寫的程序的優化。

2. 如果樓主的目標是想在Pig和Hive中選擇一種語言,那麼請選擇自己最喜歡的語言。它們性能的差別可以完全忽略不計。

3. 無論使用哪種語言,如果覺得性能不夠好,那可以從以下幾方面來做優化:

A. 使用 ORC 或者 Parquet 的文件格式,而不是SequenceFile或者RCFile。

B. 使用 Apache Tez 計算引擎而不是 MapReduce。

C. 使用 Vectorized Query Execution 向量計算 (這個好像現在還只有Hive支持)。

如果性能還是不夠好,那可以考慮使用Spark和SparkSQL,它們有更好的性能,但是技術還沒有Pig和Hive那麼成熟,穩定性差一些。


前面寫的真是超級詳細了。我單寫下公司裡面的經驗:

1. hive 語法簡單,會sql就能上手,適用於快速開發和統計

2. hive開發是多個sql的迭代,如果邏輯很複雜就會很慢,這個時候用Pig,通過Streaming把需要的日誌各種拼接,最後用udf做邏輯上的處理。

曾經公司有一個hive sql迭代+邏輯處理的腳本需要10個小時,改成Pig後2小時能完成。


詳見百度知道,比我自己寫的解釋的還要清楚

Pig和Hive有什麼不同啊?hadoop_百度知道


推薦閱讀:

《Simplifying data pipelines with Apache Kafka》課程第三章Kafka Producer問題集
Hive On Spark, SparkSQL On Spark, 與Spark On YARN如何定義呢?
hive中怎麼導入帶引號的csv文件?
《Accessing Hadoop Data Using Hive》第二章Hive DDL問題集

TAG:Hive |