【云小課】EI第32課 MRS基礎原理之Spark組件介紹

      網友投稿 871 2025-03-31

      Spark是基于內存的分布式計算框架。在迭代計算的場景下,數據處理過程中的數據可以存儲在內存中,提供了比MapReduce高10到100倍的計算能力。Spark可以使用HDFS作為底層存儲,使用戶能夠快速地從MapReduce切換到Spark計算平臺上去。Spark提供一站式數據分析能力,包括小批量流式處理、離線批處理、SQL查詢、數據挖掘等,用戶可以在同一個應用中無縫結合使用這些能力。


      Spark結構

      Spark的架構如下圖所示:

      模塊

      說明

      Cluster Manager

      集群管理器,管理集群中的資源。Spark支持多種集群管理器,Spark自帶的Standalone集群管理器、Mesos或YARN。Spark集群默認采用YARN模式。

      Application

      Spark應用,由一個Driver Program和多個Executor組成。

      Deploy Mode

      部署模式,分為cluster和client模式。cluster模式下,Driver會在集群內的節點運行;而在client模式下,Driver在客戶端運行(集群外)。

      Driver Program

      是Spark應用程序的主進程,運行Application的main()函數并創建SparkContext。負責應用程序的解析、生成Stage并調度Task到Executor上。通常SparkContext代表Driver Program。

      Executor

      在Work Node上啟動的進程,用來執行Task,管理并處理應用中使用到的數據。一個Spark應用一般包含多個Executor,每個Executor接收Driver的命令,并執行一到多個Task。

      Worker Node

      集群中負責啟動并管理Executor以及資源的節點。

      Job

      一個Action算子(比如collect算子)對應一個Job,由并行計算的多個Task組成。

      Stage

      每個Job由多個Stage組成,每個Stage是一個Task集合,由DAG分割而成。

      Task

      承載業務邏輯的運算單元,是Spark平臺中可執行的最小工作單元。一個應用根據執行計劃以及計算量分為多個Task。

      Spark原理

      Spark的應用運行架構如下圖所示,運行流程如下所示:

      應用程序(Application)是作為一個進程的集合運行在集群上的,由Driver進行協調。

      在運行一個應用時,Driver會去連接集群管理器(Standalone、Mesos、YARN)申請運行Executor資源,并啟動ExecutorBackend。然后由集群管理器在不同的應用之間調度資源。Driver同時會啟動應用程序DAG調度、Stage劃分、Task生成。

      然后Spark會把應用的代碼發送到Executor上。

      所有的Task執行完成后,用戶的應用程序運行結束。

      Spark采用Master和worker的模式,用戶在Spark客戶端提交應用程序,調度器將Job分解為多個Task發送到各個Worker中執行,各個Worker將計算的結果上報給Driver(即Master),Driver聚合結果返回給客戶端。

      在此結構中,有幾個說明點:

      應用之間是獨立的。每個應用有自己的executor進程,Executor啟動多個線程,并行地執行任務。無論是在調度方面,或者是executor方面。各個Driver獨立調度自己的任務;不同的應用任務運行在不同的JVM上,即不同的Executor。

      不同Spark應用之間是不共享數據的,除非把數據存儲在外部的存儲系統上(比如HDFS)。

      因為Driver程序在集群上調度任務,所以Driver程序最好和worker節點比較近,比如在一個相同的局部網絡內。

      Spark on YARN有兩種部署模式:

      YARN-Cluster模式下,Spark的Driver會運行在YARN集群內的ApplicationMaster進程中,ApplicationMaster已經啟動之后,提交任務的客戶端退出也不會影響任務的運行。

      YRAN-Client模式下,Driver啟動在客戶端進程內,ApplicationMaster進程只用來向YARN集群申請資源。

      運行SparkSubmit作業

      在MRS集群中,您可以通過管理控制臺、客戶端命令等多種方式運行SparkSubmit作業的操作。

      MRS集群的創建您可參考創建集群。

      通過界面提交作業

      【云小課】EI第32課 MRS基礎原理之Spark組件介紹

      在MRS管理控制臺,點擊集群名稱進入到MRS集群詳情頁面,單擊“作業管理”,進入“作業管理”頁簽。

      在作業管理頁面,即可新增SparkSubmit作業,作業新增完成后,可對作業進行管理。

      通過后臺提交作業

      登錄MRS集群的FusionInsight Manager頁面(如果沒有彈性IP,需提前購買彈性IP),新建一個用戶sparktest,綁定用戶組hadoop、supergroup,綁定主組Supergroup、綁定角色System_administrator、default。

      在Manager頁面選擇“系統 > 用戶”,在新增用戶的操作列單擊“更多 > 下載認證憑據”。

      將與作業相關的jar包上傳到集群中,本示例使用Spark自帶的樣例jar包,位置在“$SPARK_HOME/examples/jars/”下。

      上傳創建的用戶認證憑據到集群的“/opt”目錄下,并執行如下命令解壓:

      tar -xvf sparktest _xxxxxx_keytab.tar

      登錄集群客戶端所在的節點,執行以下命令提交作業:

      source /opt/client/bigdata_env cd $SPARK_HOME ./bin/spark-submit --master yarn --deploy-mode client --conf spark.yarn.principal=sparktest --conf spark.yarn.keytab=/opt/user.keytab --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-3.1.1-hw-ei-302002.jar

      運行SparkSql作業

      在MRS集群中,您可以通過管理控制臺、客戶端命令等多種方式運行SparkSql作業的操作。

      MRS集群的創建您可參考創建集群。

      通過界面提交作業

      在MRS管理控制臺,點擊集群名稱進入到MRS集群詳情頁面,單擊“作業管理”,進入“作業管理”頁簽。

      在作業管理頁面,即可新增SparkSql作業,作業新增完成后,可對作業進行管理。

      通過后臺提交作業

      登錄MRS集群的FusionInsight Manager頁面(如果沒有彈性IP,需提前購買彈性IP),新建一個用戶sparktest,綁定用戶組hadoop、supergroup,綁定主組Supergroup、綁定角色System_administrator、default。

      在Manager頁面選擇“系統 > 用戶”,在新增用戶的操作列單擊“更多 > 下載認證憑據”。

      將與作業相關的jar包上傳到集群中,本示例使用Spark自帶的樣例jar包,位置在“$SPARK_HOME/examples/jars/”下。

      上傳創建的用戶認證憑據到集群的“/opt”目錄下,并執行如下命令解壓:

      tar -xvf sparktest _xxxxxx_keytab.tar

      在對集群操作之前首先需要執行:

      source /opt/client/bigdata_env cd $SPARK_HOME

      打開spark-sql命令行,進入spark-sql命令行后可執行SQL語句,執行命令如下:

      ./bin/spark-sql --conf spark.yarn.principal=sparktest --conf spark.yarn.keytab=/opt/user.keytab

      若需要執行SQL文件,需要上傳SQL文件(如上傳到“/opt/”目錄),上傳文件后執行命令如下:

      ./bin/spark-sql --conf spark.yarn.principal=sparktest --conf spark.yarn.keytab=/opt/user.keytab -f /opt/script.sql

      關于Spark應用開發及更多相關樣例代碼介紹,請參考《Spark開發指南》。

      好了,本期云小課就介紹到這里,快去體驗MapReduce(MRS)更多功能吧!猛戳這里

      MapReduce spark 云小課

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:20年開源老司機手把手教你玩開源——openEuler入門指南
      下一篇:如何利用電子表格查重,提高工作效率
      相關文章
      国产亚洲精品a在线观看app| 亚洲香蕉在线观看| 亚洲国产成人精品电影| 亚洲AV日韩AV鸥美在线观看| 亚洲av永久无码精品表情包| 亚洲精品无码av人在线观看| 亚洲国产综合精品中文字幕| 亚洲视频在线精品| 亚洲色图综合在线| 亚洲综合精品网站| 亚洲中文字幕无码日韩| 亚洲区小说区图片区QVOD| 亚洲中文字幕无码久久2017| 久久91亚洲人成电影网站| 亚洲妇熟XXXX妇色黄| 亚洲第一精品在线视频| 香蕉视频在线观看亚洲| 精品亚洲成AV人在线观看| 亚洲最新中文字幕| 亚洲国产最大av| 亚洲av中文无码字幕色不卡| 国产亚洲精品91| 自拍偷自拍亚洲精品第1页| 国产亚洲精品精华液| 亚洲爱情岛论坛永久| 亚洲视频在线观看地址| 亚洲一区二区三区四区视频| 亚洲国产系列一区二区三区| 亚洲国产欧美国产综合一区| 亚洲人av高清无码| 亚洲国产成人久久综合| 亚洲国产精品无码久久九九 | 亚洲伊人久久大香线蕉苏妲己| 亚洲国产精品久久久久婷婷老年| 亚洲人成电影福利在线播放| 亚洲冬月枫中文字幕在线看| 亚洲国产高清在线精品一区| 亚洲精品无码专区| 亚洲男人天堂2020| 亚洲av色影在线| 精品丝袜国产自在线拍亚洲|