Hadoop與Spark等資料處理系統哪個是最好的?
如今我們擁有廣泛的資料處理系統選擇:Hadoop, Spark, Naiad, PowerGraph, Metis 和 GraphChi 等,這些不同框架的最佳效能其實高度依賴於高階的工作流程,其次,沒有某個單個系統總是會比其他系統效能高,也就是說,幾乎每個系統都有自己特定場景下的最好效能表現。
所以,選擇一個資料處理系統應該將其工作負載貼近其最佳設計點,但是我們很容易忽視這點,導致宗教式的爭論:哪個資料處理系統是最好的,這些爭論往往沒有背景前提。
選擇一個正確的並行資料處理系統是困難的,它需要大量的關於程式設計正規化、設計目標和許多可用性的實現等專家知識。
影響系統效能的四個關鍵因素有:
1.輸入資料的大小,對於較小的資料輸入,單機架構要優於分散式架構。
2.資料的結構,這會影響I/O效能和工作分發。
3.資料處理系統的自身建設中的工程決策,比如它是如何有效率的載入資料
4.計算型別,因為越專業的系統會更有效的運作。
所有系統資料來源與最終目地都是在HDFS檔案中。
下圖橫座標是資料量大小,縱座標是時間。可見資料輸入量小於0.5GB,其中紫紅的Metis單機MapReduce效能最好:
所以,選擇一個資料處理系統應該將其工作負載貼近其最佳設計點,但是我們很容易忽視這點,導致宗教式的爭論:哪個資料處理系統是最好的,這些爭論往往沒有背景前提。
選擇一個正確的並行資料處理系統是困難的,它需要大量的關於程式設計正規化、設計目標和許多可用性的實現等專家知識。
影響系統效能的四個關鍵因素有:
1.輸入資料的大小,對於較小的資料輸入,單機架構要優於分散式架構。
2.資料的結構,這會影響I/O效能和工作分發。
3.資料處理系統的自身建設中的工程決策,比如它是如何有效率的載入資料
4.計算型別,因為越專業的系統會更有效的運作。
所有系統資料來源與最終目地都是在HDFS檔案中。
下圖橫座標是資料量大小,縱座標是時間。可見資料輸入量小於0.5GB,其中紫紅的Metis單機MapReduce效能最好:
[img index=1]
對於40-80%的job提交到MapReduce系統,最好選擇是執行在單機系統。一個大型的join產生29GB的系統採取Hadoop比較合適。
一旦資料規模增長,Hive, Spark 和 Hadoop都會優於單機的Metis,至少是因為他們都能將HDFS的進出資料並行流化處理,但是不管如何,因為在工作流程中沒有資料重用,Spark效能會更差於Hadoop,它在進行計算前會將所有資料都載入到分散式記憶體RDD。
對於涉及圖的迭代計算時,毫不奇怪特定的圖形處理系統會更好。面向圖的正規化有很強的優勢,執行在Naiad上的GraphLINQ會明顯優於其他系統,PowerGraph也表現得很好,因為它的vertex-centric分片會降低通訊開銷,它在PageRank領域一直佔據主導。當然,最快的系統並不總是最有效的。
總結:實驗表明,對於一個工作流變化很大的系統最好的選擇取決於,這個最好是指最快或最有效的系統,這些依賴於工作流本身、輸入資料大小和並行規模。
Musketeer – Part I : What’s the best data processi
[該貼被banq於2015-04-28 08:14修改過]
相關文章
- Hadoop大資料分散式處理系統簡介Hadoop大資料分散式
- 資料演算法 Hadoop/Spark大資料處理---第十六章演算法HadoopSpark大資料
- 資料演算法 Hadoop/Spark大資料處理---第十二章演算法HadoopSpark大資料
- spark處理json資料DemoSparkJSON
- Spark的危機與機遇:未來必然是AI框架倒推資料處理框架SparkAI框架
- 一圖看懂Hadoop中的MapReduce與Spark的區別:從單機資料系統到分散式資料系統經歷了哪些?HadoopSpark分散式
- 大資料處理系統有哪些大資料
- 資料分析用哪個系統
- 每週一書《Spark與Hadoop大資料分析》分享!SparkHadoop大資料
- 大資料分析系統Hadoop的13個開源工具!大資料Hadoop開源工具
- 大資料分析系統Hadoop的13個開源工具大資料Hadoop開源工具
- 支付類系統資料處理和資料中臺的資料處理方式有什麼不同?
- 籠統的資料處理
- [譯] Python 與大資料:Airflow、 Jupyter Notebook 與 Hadoop 3、Spark、PrestoPython大資料AIHadoopSparkREST
- 大資料平臺之大資料處理系統的架構大資料架構
- Hadoop與Spark關係HadoopSpark
- 分享Hadoop處理大資料工具及優勢Hadoop大資料
- 大資料學習之Hadoop如何高效處理大資料大資料Hadoop
- Intel與AMD的CPU處理器到底哪個好?Intel
- 大資料框架對比 - Hadoop、Spark、Storm、Samza、Spark、Flink大資料框架HadoopSparkORM
- win10系統哪個版本最好用 win10主要玩遊戲辦公哪個版本最好Win10遊戲
- 什麼是 Hadoop ?它主要能解決 “大資料” 的哪兩個問題?Hadoop大資料
- Spark在處理資料的時候,會將資料都載入到記憶體再做處理嗎?Spark記憶體
- 電影推薦系統資料預處理
- Apache Wayang :跨平臺資料處理系統Apache
- Spark大資料處理框架入門(單機版)Spark大資料框架
- Spark如何與深度學習框架協作,處理非結構化資料Spark深度學習框架
- 分散式處理框架Hadoop的安裝與使用分散式框架Hadoop
- 帝國CMS系統資料庫配置檔案是哪個檔案?資料庫
- springboot統一異常處理及返回資料的處理Spring Boot
- springBoot資料校驗與統一異常處理Spring Boot
- 【號外】6個最好用的Python影像處理庫!Python
- 資料蔣堂|Hadoop中理論與工程的錯位Hadoop
- spark-streaming-kafka透過KafkaUtils.createDirectStream的方式處理資料SparkKafka
- Spark——為資料分析處理提供更為靈活的賦能Spark
- Hadoop高階資料分析 使用Hadoop生態系統設計和構建大資料系統Hadoop大資料
- 等保辦是啥單位?屬於哪個系統?有什麼作用?
- 系統設計:使用Scala、Spark和Hadoop構建推薦系統SparkHadoop
- ERP系統與CRM系統,哪個更重要?