Pig 和 Hive 在性能上有何差別?
02-27
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 |