0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文詳細了解APACHE SPARK開源框架

NVIDIA英偉達 ? 來源:NVIDIA英偉達 ? 作者:NVIDIA英偉達 ? 2022-04-19 14:22 ? 次閱讀

Apache Spark 是一個開源框架,適用于跨集群計算機并行處理大數(shù)據(jù)任務。它是在全球廣泛應用的分布式處理框架之一。

什么是 APACHE SPARK?

伴隨數(shù)據(jù)的巨量增長,Apache Spark 已成為分布式橫向擴展數(shù)據(jù)處理的熱門框架之一,可以在本地和云端數(shù)以百萬計的服務器上運行。

Apache Spark 是應用于大型數(shù)據(jù)處理的快速通用分析引擎,可在 YARN、Apache Mesos、Kubernetes 上運行,也可獨立或在云端運行。借助用于 SQL、流處理、機器學習和圖形處理的高級運算符及庫,Spark 使開發(fā)者能夠通過交互式 shell、筆記本或應用程序包來使用 Scala、Python、R 或 SQL 輕松構(gòu)建并行應用程序。通過功能編程模型和相關(guān)查詢引擎 Catalyst,Spark 支持批量和交互式分析,可將作業(yè)轉(zhuǎn)換為查詢方案,并跨集群節(jié)點調(diào)度查詢方案中的操作。

Spark 核心數(shù)據(jù)處理引擎之上存在多個用于 SQL 和 DataFrame、機器學習、GraphX、圖形計算和流處理的庫。用戶可在來自各種數(shù)據(jù)源(例如 HDFS、Alluxio、Apache Cassandra、Apache HBase 或 Apache Hive)的海量數(shù)據(jù)集上結(jié)合使用這些庫。

f0803436-bf94-11ec-9e50-dac502259ad0.png

Apache Spark 組件

為何選擇 APACHE SPARK?

Apache Spark 繼續(xù)了 Apache Hadoop 在 15 年前開始的大數(shù)據(jù)分析工作,并已成為大規(guī)模分布式數(shù)據(jù)處理的先進框架。

2010 年代初,大數(shù)據(jù)分析的流行促使 Hadoop 的使用量增長,而 Hadoop MapReduce 的性能限制成為了阻礙。MapReduce 的性能因其磁盤檢查點結(jié)果模型而遭遇瓶頸。同時,MapReduce 的低級別編程模型也限制了 Hadoop 的采用。

Apache Spark 最初是加利福尼亞大學伯克利分校 AMPLab 的一個研究項目,其目標是維持 MapReduce 可擴展、分布式、容錯處理框架的優(yōu)勢,同時促使該框架變得更高效、更易于使用。Spark 能夠重復利用多線程輕量級任務(并非啟動和終止進程),還能跨迭代將數(shù)據(jù)緩存于內(nèi)存中,無需在各階段間寫入磁盤,因此 Spark 在數(shù)據(jù)流程和迭代算法方面比 MapReduce 更高效。Spark 使用容錯分布式 DataFrame 來增強并行性能,并可實現(xiàn) SQL 的易用性。

f08ab406-bf94-11ec-9e50-dac502259ad0.png

Spark 于 2014 年成為 Apache 軟件基金會的高級項目,如今,遍及 16000 多家企業(yè)和組織的成千上萬名數(shù)據(jù)工程師和科學家都在使用 Spark。Spark 在 Hadoop 的基礎(chǔ)上繼往開來的原因之一是,與 MapReduce 相比,其內(nèi)存數(shù)據(jù)處理性能能夠以快達 100 倍的速度完成某些任務。這些功能由 250 多家公司的 1000 多位貢獻者在一個開放社區(qū)中創(chuàng)建。Databricks 的創(chuàng)始人率先進行了這項工作,僅僅是其平臺每天就運行著 100 多萬個虛擬機來分析數(shù)據(jù)。

為何 SPARK 在應用 GPU 后表現(xiàn)更出色

Spark 的各個版本均有所改進,有助于更輕松地編程和執(zhí)行。Apache Spark 3.0 通過創(chuàng)新來維持此趨勢,改善 Spark SQL 性能和 NVIDIA GPU 加速。

f096b256-bf94-11ec-9e50-dac502259ad0.png

圖形處理器 (GPU) 因其超低浮點運算(性能)單價深受歡迎,其還可通過加快多核服務器的并行處理速度,解決當前的計算性能瓶頸問題。CPU 由專為按序串行處理優(yōu)化的幾個核心組成。而 GPU 則擁有一個大規(guī)模并行架構(gòu),當中包含數(shù)千個更小、更高效的核心,專為同時處理多重任務而設計。與僅包含 CPU 的配置相比,GPU 的數(shù)據(jù)處理速度快得多。過去數(shù)年中,GPU 一直推動 DL 和機器學習 (ML) 模型訓練的發(fā)展。然而,數(shù)據(jù)科學家 80% 的時間都花費在了數(shù)據(jù)預處理上。

雖然 Spark 是以分割數(shù)據(jù)形式在節(jié)點分區(qū)中分發(fā)計算,但其向來是在 CPU 核心上執(zhí)行計算操作。Spark 雖然通過添加內(nèi)存數(shù)據(jù)處理緩解了 Hadoop 中存在的 I/O 問題,但現(xiàn)在瓶頸問題已從 I/O 轉(zhuǎn)變?yōu)槿找嬖龆嗟膽贸绦虻挠嬎銌栴}。隨著 GPU 加速計算的出現(xiàn),此性能瓶頸問題迎刃而解。

為滿足并超越數(shù)據(jù)處理的現(xiàn)代需求,NVIDIA 一直與 Apache Spark 社區(qū)進行合作,通過推出 Spark 3.0 版本和用于 Spark 的開源 RAPIDS 加速器,將 GPU 應用于 Spark 的本機處理。在 Spark 中引入 GPU 加速具有諸多優(yōu)勢:

數(shù)據(jù)處理、查詢和模型訓練能夠更快完成,縮短結(jié)果獲取時間。

同一個 GPU 加速的基礎(chǔ)設施可用于 Spark 和 ML/DL(深度學習)框架,因而無需使用單獨的集群,并讓整個流程都能獲得 GPU 加速。

減少所需的服務器數(shù)量,降低基礎(chǔ)設施成本。

用于 APACHE SPARK 的 RAPIDS 加速器

RAPIDS 是一套開源軟件庫和 API,可完全在 GPU 上執(zhí)行端到端數(shù)據(jù)科學和分析流程,能夠?qū)崿F(xiàn)大幅的速度提升,在大型數(shù)據(jù)集上尤是如此。用于 Apache Spark 的 RAPIDS 加速器基于 NVIDIA CUDA 和 UCX 構(gòu)建,支持 GPU 加速的 SQL/DataFrame 操作和 Spark shuffle,且無需更改代碼。

f0ae9876-bf94-11ec-9e50-dac502259ad0.png

Apache Spark 加速的端到端 AI 平臺堆棧

加速 SQL/DataFrame

Spark 3.0 支持 SQL 優(yōu)化器插件,使用列式批量(而非行式)處理數(shù)據(jù)。列式數(shù)據(jù)非常適合 GPU,并且 RAPIDS 加速器可插入此功能以加速 SQL 和 DataFrame 運算符。針對 RAPIDS 加速器,Catalyst 查詢優(yōu)化器進行了修改,可識別通過 RAPIDS API 加速的查詢方案(主要是一對一映射)中的運算符,并可在執(zhí)行查詢方案時在 Spark 集群中的 GPU 上調(diào)度這些運算符。

加速 Shuffle

在階段之間從現(xiàn)有 DataFrame 創(chuàng)建新 DataFrame 時,按值對數(shù)據(jù)進行排序、分組或合并的 Spark 操作必須移動分區(qū)之間的數(shù)據(jù),此過程稱為 shuffle,其中涉及磁盤 I/O、數(shù)據(jù)序列化和網(wǎng)絡 I/O。新的 RAPIDS 加速器 shuffle 實施利用 UCX 優(yōu)化 GPU 數(shù)據(jù)傳輸,盡可能在 GPU 上保留更多的數(shù)據(jù),通過使用優(yōu)質(zhì)的可用硬件資源,找到在節(jié)點間移動數(shù)據(jù)的快速路徑(包括繞過 CPU 執(zhí)行 GPU 到 GPU 顯存的節(jié)點內(nèi)和節(jié)點間傳輸)。

加速器感知型調(diào)度

為推動旨在更好地統(tǒng)一深度學習和數(shù)據(jù)處理的重要 Spark 計劃,GPU 在 Apache Spark 3.0 中現(xiàn)已成為可調(diào)度資源。這使得 Spark 能夠使用特定數(shù)量的 GPU 來調(diào)度執(zhí)行程序,并且用戶可以指定每個任務所需的 GPU 數(shù)量。Spark 將這些資源請求傳送至底層集群管理器、Kubernetes、YARN 或 Standalone。用戶還可以配置發(fā)現(xiàn)腳本,檢測集群管理器分配的 GPU。這大大簡化了需要 GPU 的 ML 應用程序的運行,因為之前用戶需要處理 Spark 應用程序中缺少 GPU 調(diào)度的問題。

加速 XGBoost

XGBoost 是一種可擴展的分布式梯度提升決策樹 (GBDT) ML 庫。

XGBoost 提供并行樹提升功能,是應用于回歸、分類和排序問題的出色 ML 庫。RAPIDS 團隊與 Distributed Machine Learning Common (DMLC) XGBoost 組織密切合作,而且 XGBoost 現(xiàn)已包含無縫嵌入式 GPU 加速。另外,Spark 3.0 XGBoost 現(xiàn)已與 Rapids 加速器集成,借助 Spark SQL/DataFrame 操作的 GPU 加速、XGBoost 訓練時間的 GPU 加速,以及內(nèi)存優(yōu)化存儲功能的高效 GPU 顯存利用率,可改善性能、準確性和成本。

f0d40534-bf94-11ec-9e50-dac502259ad0.png

在 Spark 3.0 中,您現(xiàn)在可以有單個流程,從數(shù)據(jù)提取到數(shù)據(jù)準備,再到在 GPU 驅(qū)動的集群上訓練模型,皆包含在內(nèi)

SPARK 用例示例

欺詐檢測

對于需要快速決策并涉及多個數(shù)據(jù)源的情況而言,運行快速的 Spark 是不二之選。例如,金融機構(gòu)檢測信用卡欺詐的方法之一是,分析單一帳戶上的交易量和交易地點。如果交易次數(shù)超出個人能力范圍,或者多個交易發(fā)生在不同地點,而交易地點相距不合情理,則表明一個帳戶已被泄露。

銀行可以使用 Apache Spark 來根據(jù)使用模式創(chuàng)建帳戶持有者的統(tǒng)一視圖。機器學習可用于根據(jù)先前觀察到的模式,檢測超出規(guī)范的模式。這還可以使機構(gòu)更好地根據(jù)客戶個人需求來定制優(yōu)惠。

醫(yī)療健康

在美國,藥物的不良相互作用是第四大致死原因,排在肺癌、糖尿病和肺炎之前。確定多種藥物如何相互作用以對患者造成不良后果,這一問題的復雜程度呈指數(shù)級增加,隨著新藥不斷推出,這一問題在每一年都更加復雜。

借助 Spark,數(shù)據(jù)科學家可以創(chuàng)建算法,掃描數(shù)百萬份病例記錄并查找提及的藥物類型。某些藥物的組合可以與治療結(jié)果相關(guān)聯(lián),并按原先存在的狀況和病史等因素加權(quán)。然后可以將結(jié)果應用于個別患者的健康記錄,在開具處方或填寫處方之前提醒醫(yī)生和藥師注意出現(xiàn)不良反應的可能性。

為何 APACHE SPARK 如此重要

Spark 3.0 是數(shù)據(jù)科學家和數(shù)據(jù)工程師在分析和 AI 領(lǐng)域協(xié)作的一個重要里程碑,其使 ETL 操作得到加速,同時 ML 和 DL 應用程序也能夠利用相同的 GPU 基礎(chǔ)設施。

數(shù)據(jù)科學團隊

將數(shù)據(jù)轉(zhuǎn)化為可用形式需要完成眾多普通任務,數(shù)據(jù)科學的“魔力”對此也無計可施。該過程涉及對數(shù)百萬或數(shù)十億條記錄中的非結(jié)構(gòu)化數(shù)據(jù)(例如郵政編碼、日期和 SKU 編號)進行分類和排序。數(shù)據(jù)集越大,處理時間越長。據(jù)估計,數(shù)據(jù)準備會占用數(shù)據(jù)科學家 80% 的時間。

Hadoop 是一項大規(guī)模執(zhí)行數(shù)據(jù)分析的突破性技術(shù),使數(shù)據(jù)科學家能夠針對超大型數(shù)據(jù)存儲執(zhí)行查詢。但是,處理時間通常很長,尤其是在需要對現(xiàn)有數(shù)據(jù)集執(zhí)行重復掃描時,這在進行分類和數(shù)據(jù)發(fā)現(xiàn)時經(jīng)常發(fā)生。

Spark 專為跨大型數(shù)據(jù)集的迭代查詢而構(gòu)建。與 Hadoop/MapReduce 相比,其速度快達 100 倍,迅速獲得了數(shù)據(jù)科學家的青睞。Spark 還可輕松適應 Python、R 和 Scala 等面向數(shù)據(jù)科學的開發(fā)語言。由于大多數(shù)數(shù)據(jù)科學家都習慣于使用單個編程工具,因此 Spark 能夠輕松適應個人需求。

Spark SQL 還引入了名為 DataFrame 的數(shù)據(jù)抽象概念,該概念支持結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),并且支持多語言操作。通過這種概念,熟悉的 SQL 語言能夠以新方式應用于非結(jié)構(gòu)化數(shù)據(jù)。Spark ML 提供了一套統(tǒng)一的高級別 API,這些 API 基于 DataFrame 構(gòu)建,用于搭建 ML 流程或 ML 工作流程?;?DataFrame 構(gòu)建 ML 流程可實現(xiàn)分區(qū)數(shù)據(jù)處理的可擴展性,且便于通過 SQL 進行數(shù)據(jù)操作。

數(shù)據(jù)工程團隊

數(shù)據(jù)工程師彌補了數(shù)據(jù)科學家與開發(fā)者之間的差距。數(shù)據(jù)科學家選擇合適的數(shù)據(jù)類型和算法來解決問題,而數(shù)據(jù)工程師則與數(shù)據(jù)科學家和開發(fā)者開展合作,處理與數(shù)據(jù)流程創(chuàng)建相關(guān)的所有工作,用于數(shù)據(jù)提取轉(zhuǎn)換、存儲和分析,以構(gòu)建大數(shù)據(jù)分析應用程序。

Spark 將復雜性從存儲方程中抽象出來。該框架可以處理幾乎任何底層存儲(包括 Hadoop 分布式文件系統(tǒng)),因此比 Hadoop 更靈活,更適用于云和本地基礎(chǔ)設施的組合。Spark 還可以輕松整合流數(shù)據(jù)源,使其成為適用于新一代物聯(lián)網(wǎng)應用程序的引擎。

原文標題:NVIDIA大講堂 | 什么是 APACHE SPARK?

文章出處:【微信公眾號:NVIDIA英偉達】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4986

    瀏覽量

    103066
  • 開源框架
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    9413
  • apache spark
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    1799

原文標題:NVIDIA大講堂 | 什么是 APACHE SPARK?

文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    大數(shù)據(jù)分析中Spark,Hadoop,Hive框架該用哪種開源分布式系統(tǒng)

    眾所周知,大數(shù)據(jù)開發(fā)和分析、機器學習、數(shù)據(jù)挖掘中,都離不開各種開源分布式系統(tǒng)。最常見的就是 Hadoop、Hive、Spark這三個框架了。最近不少朋友有問到關(guān)于這些的問題: 大廠里還有在用
    的頭像 發(fā)表于 09-17 13:17 ?4449次閱讀

    RDMA技術(shù)在Apache Spark中的應用

    背景介紹 在當今數(shù)據(jù)驅(qū)動的時代,Apache?Spark已經(jīng)成為了處理大規(guī)模數(shù)據(jù)集的首選框架。作為開源的分布式計算系統(tǒng),
    的頭像 發(fā)表于 03-25 18:13 ?1542次閱讀
    RDMA技術(shù)在<b class='flag-5'>Apache</b> <b class='flag-5'>Spark</b>中的應用

    Hadoop的整體框架組成

    Hadoop是個用Java編寫的Apache開源框架,允許使用簡單的編程模型跨計算機集群分布式處理大型數(shù)據(jù)集。Hadoop框架工作的應用程
    發(fā)表于 05-11 16:00

    基于Spark 2.1版本的Apache Spark內(nèi)存管理

    Apache Spark 內(nèi)存管理詳解
    發(fā)表于 04-26 17:13

    基于Apache Spark 的下波智能應用

    基于Apache Spark 的下波智能應用
    發(fā)表于 12-28 11:07 ?0次下載

    如何使用Apache Spark 2.0

    數(shù)據(jù)集(Resilient Distributed Dataset,RDD)直是Spark中的主要抽象。RDD API是在Scala集合框架之后建模的,因此間接提供了Hadoop Map / Reduce熟悉的編程
    發(fā)表于 09-28 19:00 ?0次下載
    如何使用<b class='flag-5'>Apache</b> <b class='flag-5'>Spark</b> 2.0

    Apache Spark 1.6預覽版新特性展示

    日前,Databricks公司發(fā)布了Apache Spark主要版本的可用性。除了可用性、可移植性等幾個新的特性外,本次發(fā)布還提供了對尚未發(fā)布的Apache
    發(fā)表于 10-13 11:21 ?0次下載
    <b class='flag-5'>Apache</b> <b class='flag-5'>Spark</b> 1.6預覽版新特性展示

    機器學習實例:Spark與Python結(jié)合設計

    Apache Spark是處理和使用大數(shù)據(jù)最廣泛的框架,Python是數(shù)據(jù)分析、機器學習等領(lǐng)域最廣泛使用的編程語言之。如果想要獲得更棒
    發(fā)表于 07-01 10:15 ?2769次閱讀

    Apache Spark的分布式深度學習框架BigDL的概述

    該視頻概述了Apache Spark *的BigDL分布式深度學習框架。
    的頭像 發(fā)表于 10-30 06:41 ?3259次閱讀

    Apache Spark上的分布式機器學習的介紹

    Apache Spark上的分布式機器學習
    的頭像 發(fā)表于 11-05 06:31 ?2916次閱讀

    Apache Spark 3.2有哪些新特性

    經(jīng)過七輪投票, Apache Spark 3.2 終于正式發(fā)布了。Apache Spark 3.2 已經(jīng)是 Databricks Runtime 10.0 的
    的頭像 發(fā)表于 11-17 14:09 ?1782次閱讀

    利用Apache Spark和RAPIDS Apache加速Spark實踐

      在第三期文章中,我們詳細介紹了如何充分利用 Apache SparkApache RAPIDS 加速器 Spark 。 大多數(shù)團隊
    的頭像 發(fā)表于 04-26 17:39 ?1873次閱讀
    利用<b class='flag-5'>Apache</b> <b class='flag-5'>Spark</b>和RAPIDS <b class='flag-5'>Apache</b>加速<b class='flag-5'>Spark</b>實踐

    詳細了解OpenHarmony新圖形框架

    3月30日,OpenHarmony v3.1 Release版本正式發(fā)布了。此版本為大家?guī)砹巳碌膱D形框架,實現(xiàn)了UI框架顯示、多窗口、流暢動畫等基礎(chǔ)能力,夯實了OpenHarmony系統(tǒng)能力基座。下面就帶大家詳細了解新圖形
    的頭像 發(fā)表于 04-27 13:21 ?2232次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>詳細了解</b>OpenHarmony新圖形<b class='flag-5'>框架</b>

    詳細了解ArkUI框架新增能力

    ArkUI是套UI開發(fā)框架,它提供了開發(fā)者進行應用UI開發(fā)時所必須的能力。隨著OpenHarmony v3.1 Release(后文簡稱v3.1)版本的發(fā)布,ArkUI框架也增加了許多新能力,接下來跟隨小編
    的頭像 發(fā)表于 04-27 13:44 ?1463次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>詳細了解</b>ArkUI<b class='flag-5'>框架</b>新增能力

    Spark基于DPU的Native引擎算子卸載方案

    1.背景介紹 Apache Spark(以下簡稱Spark)是開源的分布式計算框架,由UC
    的頭像 發(fā)表于 06-28 17:12 ?587次閱讀
    <b class='flag-5'>Spark</b>基于DPU的Native引擎算子卸載方案