Apache Spark 在大數據中的作用及其與眾不同之處
已發表: 2018-05-30Apache Spark 已成為 Hadoop 的更易於訪問和引人注目的替代品,Hadoop 是管理大數據的原始選擇。 與其他復雜的大數據工具一樣,Apache Spark 功能非常強大,並且裝備精良,可以有效地處理龐大的數據集。
通過這篇博文,讓我們幫助您闡明 Apache Spark 的細節。
目錄
什麼是 Apache Spark?
簡單來說,Spark 是一種通用的數據處理和處理引擎,適用於各種環境。 數據科學家利用 Apache Spark 來改進他們的查詢、分析和數據轉換。 使用 Spark 最常完成的任務包括跨大型數據集的交互式查詢、分析和處理來自傳感器和其他來源的流數據,以及機器學習任務。
Spark 於 2009 年在加州大學伯克利分校推出。 它早在 2014 年就進入了 Apache 軟件基金會的孵化器,並於 2014 年晉升為基金會最高級別的項目之一。 目前,Spark 是基金會評價最高的項目之一。 圍繞該項目成長起來的社區既包括多產的個人貢獻者,也包括資金充足的企業支持者。
從一開始,它就確保大多數任務發生在內存中。 因此,它總是比 Hadoop 的 MapReduce 等其他方法更快、更優化,後者在每個處理階段之間將數據寫入硬盤驅動器和從硬盤驅動器寫入數據。 據稱,Spark 的內存容量使其速度比 Hadoop 的 MapReduce 快 100 倍。 這種比較,無論多麼真實,都是不公平的。 因為 Spark 在設計時考慮到了速度,而 Hadoop 是為批處理而開發的(它不需要像流處理那樣高的速度)。
關於 Apache Storm 你需要知道的一切火花做什麼?
Spark 能夠一次處理 PB 級的數據。 這些數據分佈在由數千個協作服務器(物理或虛擬)組成的集群中。 Apache spark 帶有大量庫和 API,支持所有常用語言,如 Python、R 和 Scala。 Spark 通常與 HDFS(Hadoop 分佈式文件系統 - Hadoop 的數據存儲系統)一起使用,但也可以與其他數據存儲系統很好地集成。
Apache Spark 的一些典型用例包括:
- Spark 流和處理:今天,管理數據“流”對於任何數據專業人員來說都是一個挑戰。 這些數據穩定地到達,通常來自多個來源,而且都是一次。 雖然一種方法可能是將這些數據存儲在磁盤中並進行回顧性分析,但這會使企業蒙受損失。 例如,可以實時處理財務數據流,以識別並拒絕潛在的欺詐交易。 Apache Spark 正是在這方面提供了幫助。
- 機器學習:隨著數據量的增加,機器學習方法也變得更加可行和準確。 今天,可以訓練軟件識別觸發器並根據觸發器採取行動,然後將相同的解決方案應用於新的和未知的數據。 Apache Spark 將數據存儲在內存中的出色功能有助於更快地查詢,因此使其成為訓練 ML 算法的絕佳選擇。
- 交互式流分析:業務分析師和數據科學家希望通過提問來探索他們的數據。 他們不再希望使用預定義的查詢來創建銷售、生產線生產力或股票價格的靜態儀表板。 這種交互式查詢過程需要 Spark 等能夠快速響應的系統。
- 數據集成:數據由多種來源產生,很少是乾淨的。 ETL(提取、轉換、加載)過程通常用於從不同的系統中提取數據,對其進行清理、標準化,然後將其存儲到單獨的系統中進行分析。 Spark 越來越多地被用於減少為此所需的成本和時間。
使用 Apache Spark 的公司
眾多組織迅速支持並與 Apache Spark 攜手合作。 他們意識到 Spark 提供了真正的價值,例如交互式查詢和機器學習。
IBM 和華為等知名公司已經在這項技術上投入了大量資金,許多成長中的初創公司正在 Spark 及其周圍構建他們的產品。 例如,負責創建 Spark 的伯克利團隊於 2013 年創立了 Databricks。Databricks 提供了一個由 Spark 提供支持的託管端到端數據平台。


所有主要的 Hadoop 供應商都開始支持 Spark 以及他們現有的產品。 百度、電子商務運營商阿里巴巴淘寶和社交網絡公司騰訊等面向 Web 的組織都在大規模使用基於 Spark 的運營。 為了讓您了解 Apache Spark 的強大功能,騰訊擁有 8 億活躍用戶,每天產生超過 800 TB 的數據進行處理。

除了這些網絡巨頭之外,諾華等製藥公司也依賴 Spark。 使用 Spark Streaming,他們減少了將建模數據交到研究人員手中所需的時間。
MapReduce 搭便車指南是什麼讓 Spark 與眾不同?
讓我們看看 Apache Spark 迅速成為數據科學家最愛的關鍵原因:
- 靈活性和可訪問性: Spark 擁有如此豐富的 API 集,確保其所有功能都非常易於訪問。 所有這些 API 都旨在快速有效地與大規模數據交互,從而使 Apache Spark 極其靈活。 這些 API 有完整的文檔,並且以非常清晰和直接的方式編寫。
- 速度:速度是 Spark 的設計目標。 無論是在內存中還是在磁盤上。 一組 Databricks 使用 Spark 完成 100TB 基準挑戰。 這一挑戰涉及處理龐大但靜態的數據集。 該團隊能夠使用 Spark 在 23 分鐘內處理存儲在 SSD 上的 100TB 數據。 之前的獲勝者使用 Hadoop 在 72 分鐘內完成了這項工作。 更好的是,Spark 在支持對存儲在內存中的數據進行交互式查詢時表現出色。 在這些情況下,Apache Spark 據稱比 MapR 快 100 倍。
- 支持:正如我們之前所說,Apache Spark 支持大多數著名的編程語言,包括 Java、Python、Scala 和 R。Spark 還支持與除 HDFS 之外的許多存儲系統的緊密集成。 此外,Apache Spark 背後的社區龐大、活躍且國際化。
結論
至此,我們來到了這篇博文的結尾。 我們希望您喜歡深入了解 Apache Spark 的詳細信息。 如果大量數據讓您腎上腺素飆升,我們建議您親身體驗 Apache Spark,讓自己成為資產!
如果您有興趣了解有關大數據的更多信息,請查看我們的 PG 大數據軟件開發專業文憑課程,該課程專為在職專業人士設計,提供 7 多個案例研究和項目,涵蓋 14 種編程語言和工具,實用的動手操作研討會,超過 400 小時的嚴格學習和頂級公司的就業幫助。
從世界頂級大學在線學習軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。