編寫一個linux程序,編寫一個腳本判斷某個用戶是否處在活動模式_大數據技術之Spark內核解析(二)Spark 部署模式...

 2023-10-15 阅读 15 评论 0

摘要:Spark支持3種集群管理器(Cluster Manager),分別為:1. Standalone:獨立模式,Spark原生的簡單集群管理器,自帶完整的服務,可單獨部署到一個集群中,無需依賴任何其他資源管理系統,使用Standalone可以很方便地搭建一個集

Spark支持3種集群管理器(Cluster Manager),分別為:

1. Standalone:獨立模式,Spark原生的簡單集群管理器,自帶完整的服務,可單獨部署到一個集群中,無需依賴任何其他資源管理系統,使用Standalone可以很方便地搭建一個集群;

2. Apache Mesos:一個強大的分布式資源管理框架,它允許多種不同的框架部署在其上,包括yarn;

3. Hadoop YARN:統一的資源管理機制,在上面可以運行多套計算框架,如map reduce、storm等,根據driver在集群中的位置不同,分為yarn client和yarn cluster。

編寫一個linux程序、實際上,除了上述這些通用的集群管理器外,Spark內部也提供了一些方便用戶測試和學習的簡單集群部署模式。由于在實際工廠環境下使用的絕大多數的集群管理器是Hadoop YARN,因此我們關注的重點是Hadoop YARN模式下的Spark集群部署。

Spark的運行模式取決于傳遞給SparkContext的MASTER環境變量的值,個別模式還需要輔助的程序接口來配合使用,目前支持的Master字符串及URL包括:

ac6db8fb06994e2383f05d3c5bd594c4.png

用戶在提交任務給Spark處理時,以下兩個參數共同決定了Spark的運行方式。

· –master MASTER_URL :決定了Spark任務提交給哪種集群處理。

· –deploy-mode DEPLOY_MODE:決定了Driver的運行方式,可選值為Client或者Cluster。

用戶使用手冊由哪些人員編寫、2.1 Standalone模式運行機制

Standalone集群有四個重要組成部分,分別是:

1) Driver:是一個進程,我們編寫的Spark應用程序就運行在Driver上,由Driver進程執行;

2) Master(RM):是一個進程,主要負責資源的調度和分配,并進行集群的監控等職責;

3) Worker(NM):是一個進程,一個Worker運行在集群中的一臺服務器上,主要負責兩個職責,一個是用自己的內存存儲RDD的某個或某些partition;另一個是啟動其他進程和線程(Executor),對RDD上的partition進行并行的處理和計算。

java編寫用戶界面程序基礎。4) Executor:是一個進程,一個Worker上可以運行多個Executor,Executor通過啟動多個線程(task)來執行對RDD的partition進行并行計算,也就是執行我們對RDD定義的例如map、flatMap、reduce等算子操作。

2.1.1 Standalone Client模式

3dfbfb38c393b8078cdd641f428b7973.png

在Standalone Client模式下,Driver在任務提交的本地機器上運行,Driver啟動后向Master注冊應用程序,Master根據submit腳本的資源需求找到內部資源至少可以啟動一個Executor的所有Worker,然后在這些Worker之間分配Executor,Worker上的Executor啟動后會向Driver反向注冊,所有的Executor注冊完成后,Driver開始執行main函數,之后執行到Action算子時,開始劃分stage,每個stage生成對應的taskSet,之后將task分發到各個Executor上執行。

2.1.2 Standalone Cluster模式

02d6ff80bfa3a795eefca107d9af126f.png

在Standalone Cluster模式下,任務提交后,Master會找到一個Worker啟動Driver進程, Driver啟動后向Master注冊應用程序,Master根據submit腳本的資源需求找到內部資源至少可以啟動一個Executor的所有Worker,然后在這些Worker之間分配Executor,Worker上的Executor啟動后會向Driver反向注冊,所有的Executor注冊完成后,Driver開始執行main函數,之后執行到Action算子時,開始劃分stage,每個stage生成對應的taskSet,之后將task分發到各個Executor上執行。

用戶用高級語言編寫的程序稱為,注意,Standalone的兩種模式下(client/Cluster),Master在接到Driver注冊Spark應用程序的請求后,會獲取其所管理的剩余資源能夠啟動一個Executor的所有Worker,然后在這些Worker之間分發Executor,此時的分發只考慮Worker上的資源是否足夠使用,直到當前應用程序所需的所有Executor都分配完畢,Executor反向注冊完畢后,Driver開始執行main程序。

2.2 YARN模式運行機制

2.2.1 YARN Client模式

6aedadb54b01ff694d7d276fd6d8b3a2.png

在YARN Client模式下,Driver在任務提交的本地機器上運行,Driver啟動后會和ResourceManager通訊申請啟動ApplicationMaster,隨后ResourceManager分配container,在合適的NodeManager上啟動ApplicationMaster,此時的ApplicationMaster的功能相當于一個ExecutorLaucher,只負責向ResourceManager申請Executor內存。

ResourceManager接到ApplicationMaster的資源申請后會分配container,然后ApplicationMaster在資源分配指定的NodeManager上啟動Executor進程,Executor進程啟動后會向Driver反向注冊,Executor全部注冊完成后Driver開始執行main函數,之后執行到Action算子時,觸發一個job,并根據寬依賴開始劃分stage,每個stage生成對應的taskSet,之后將task分發到各個Executor上執行。

用戶編寫程序所使用的地址。2.2.2 YARN Cluster模式

f5bb3b8597cc39af31ea8cde450f14c2.png

在YARN Cluster模式下,任務提交后會和ResourceManager通訊申請啟動ApplicationMaster,隨后ResourceManager分配container,在合適的NodeManager上啟動ApplicationMaster,此時的ApplicationMaster就是Driver。

Driver啟動后向ResourceManager申請Executor內存,ResourceManager接到ApplicationMaster的資源申請后會分配container,然后在合適的NodeManager上啟動Executor進程,Executor進程啟動后會向Driver反向注冊,Executor全部注冊完成后Driver開始執行main函數,之后執行到Action算子時,觸發一個job,并根據寬依賴開始劃分stage,每個stage生成對應的taskSet,之后將task分發到各個Executor上執行。

(本文為系列文章,關注作者閱讀其它部分內容,總有一篇是你欠缺的,技術無止境,且學且珍惜!!!)

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/137549.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息