Categories
程式開發

存算分離下寫性能提升10倍以上,EMR Spark引擎是如何做到的?


引言

隨著大數據技術架構的演進,存儲與計算分離的架構能更好的滿足用戶對降低數據存儲成本,按需調度計算資源的訴求,正在成為越來越多人的選擇。相較HDFS,數據存儲在對象存儲上可以節約存儲成本,但與此同時,對象存儲對海量文​​件的寫性能也會差很多。

騰訊雲彈性MapReduce(EMR) 是騰訊雲的一個雲端託管的彈性開源泛Hadoop 服務,支持Spark、Hbase、Presto、Flink、Druid 等大數據框架。

近期,在支持一位EMR 客戶時,遇到典型的存儲計算分離應用場景。客戶使用了EMR 中的Spark 組件作為計算引擎,數據存儲在對象存儲上。在幫助客戶技術調優過程中,發現了Spark 在海量文件場景下寫入性能比較低,影響了架構的整體性能表現。

在深入分析和優化後,我們最終將寫入性能大幅提升,特別是將寫入對象存儲的性能提升了10 倍以上,加速了業務處理,獲得了客戶好評。

本篇文章將介紹在存儲計算分離架構中,騰訊雲EMR Spark 計算引擎如何提昇在海量文件場景下的寫性能,希望與大家一同交流。文章作者:鍾德艮,騰訊後台開發工程師。

一、問題背景

Apache Spark 是專為大規模數據處理而設計的快速通用的計算引擎,可用來構建大型的、低延遲的數據分析應用程序。 Spark 是UC Berkeley AMP lab (加州大學伯克利分校的AMP 實驗室)所開源的類Hadoop MapReduce 的通用並行框架,Spark 擁有Hadoop MapReduce 所具有的優點。

原文鏈接:【https://www.infoq.cn/article/pGEeR83ptNQDxhGEIjr5】。未經作者許可,禁止轉載。