Rainbond怎樣實(shí)現(xiàn)部署SparkStandalone集群
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Rainbond怎樣實(shí)現(xiàn)部署Spark Standalone 集群,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
召陵網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,召陵網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為召陵成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的召陵做網(wǎng)站的公司定做!
Standalone 是 Spark 自身提供的一種主從集群部署模式。本文講述一個(gè)常規(guī)1主多從的集群部署模式,該模式下master服務(wù)依靠Rainbond平臺(tái)監(jiān)控保障其可用性,支持重新調(diào)度重啟。 worker服務(wù)可以根據(jù)需要伸縮多個(gè)節(jié)點(diǎn)。
部署效果截圖如下:
部署步驟
開始前,你需要完成Rainbond平臺(tái)的安裝和搭建,參考Rainbond 安裝與部署 本參考文檔適合已掌握Rainbond 基礎(chǔ)操作的同學(xué),因此如果你還剛接觸Rainbond平臺(tái),請(qǐng)先參考 Rainbond 快速入門指南
部署單實(shí)例的master服務(wù)
部署spark-master,采用Rainbond基于Docker鏡像創(chuàng)建組件:
bde2020/spark-master:3.0.1-hadoop3.2
確認(rèn)創(chuàng)建檢測(cè)成功后選擇
高級(jí)設(shè)置
進(jìn)行三個(gè)特殊設(shè)置。在環(huán)境變量模塊中添加環(huán)境變量
SPARK_DAEMON_JAVA_OPTS=-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/data
我們需要設(shè)置spark-master為“Recovery with Local File System”模式??梢栽趍aster發(fā)生重啟后從持久化文件中恢復(fù)數(shù)據(jù),保持master服務(wù)的可用性。
在存儲(chǔ)設(shè)置中添加共享存儲(chǔ)
/data
持久化master的數(shù)據(jù),使其可以重啟后恢復(fù)。在端口管理中將 8080端口的對(duì)外服務(wù)打開,組件啟動(dòng)成功后即可訪問master的UI。
在部署屬性中選擇組件類型為
有狀態(tài)單實(shí)例
部署為有狀態(tài)組件后,其可以獲得一個(gè)穩(wěn)定的內(nèi)部訪問域名,供worker組件連接。有狀態(tài)服務(wù)控制權(quán)可以保障master節(jié)點(diǎn)不會(huì)重復(fù)啟動(dòng)多個(gè)實(shí)例。
設(shè)置完成后選擇確認(rèn)創(chuàng)建即可啟動(dòng)master服務(wù)。
組件成功點(diǎn)擊訪問即可打開master UI。如上圖所示,我們可以在UI中獲取到master服務(wù)的訪問地址是:spark://gr7b570e:7077
,注意UI上顯示的地址是spark://gr7b570e-0:7077
我們需要使用的是spark://gr7b570e:7077
,復(fù)制并記錄這個(gè)地址。
注意,地址實(shí)際值請(qǐng)查看你的UI顯示,這里只是舉例說明。
部署多實(shí)例的worker實(shí)例
部署spark-worker,采用基于Docker-run命令創(chuàng)建組件,這種創(chuàng)建方式可以直接設(shè)置一些必要屬性:
docker run -it -e SPARK_MASTER=spark://gr7b570e:7077 -e SPARK_WORKER_MEMORY=1g bde2020/spark-worker:3.0.1-hadoop3.2
如上創(chuàng)建方式指定了兩個(gè)環(huán)境變量。
SPARK_MASTER 指定的是master的地址,由上一步創(chuàng)建的組件獲取。
SPARK_WORKER_MEMORY 設(shè)置worker單個(gè)實(shí)例的內(nèi)存量,這個(gè)根據(jù)每個(gè)實(shí)例分配的內(nèi)存進(jìn)行設(shè)置即可。比如每個(gè)實(shí)例分配1GB, 則設(shè)置SPARK_WORKER_MEMORY=1g 。如果不設(shè)置此變量,服務(wù)會(huì)自動(dòng)讀取操作系統(tǒng)的內(nèi)存量。由于我們是采用的容器部署方式,讀取的值會(huì)是宿主機(jī)的全部?jī)?nèi)存。將遠(yuǎn)大于worker實(shí)例實(shí)際分配的可用內(nèi)存值。
同樣進(jìn)入高級(jí)設(shè)置,設(shè)置組件部署模式為
有狀態(tài)多實(shí)例
。確認(rèn)創(chuàng)建組件,啟動(dòng)成功后即可在組件的伸縮頁面中設(shè)置worker的運(yùn)行實(shí)例數(shù)。
到此,我們的Spark集群已部署完成。
Spark數(shù)據(jù)讀取
就近數(shù)據(jù)處理原則逐步打破
過去我們更偏愛于把數(shù)據(jù)處理服務(wù)(hadoop、yarn等)部署到離數(shù)據(jù)最近的地方。主要原因是hadoop計(jì)算數(shù)據(jù)的模式對(duì)IO消耗較多,如果數(shù)據(jù)與計(jì)算分類,網(wǎng)絡(luò)IO帶來的消耗將更大,對(duì)網(wǎng)絡(luò)帶寬要求較大。
但Spark機(jī)制不同,Spark計(jì)算模式是將數(shù)據(jù)盡可能緩存到內(nèi)存中,也就意味著Spark消耗的資源主要是內(nèi)存和CPU。然后存儲(chǔ)數(shù)據(jù)的設(shè)備內(nèi)存和CPU配屬不一定充足。因此數(shù)據(jù)與計(jì)算分離將是更好的選擇。
數(shù)據(jù)與計(jì)算分離后的更多選擇
數(shù)據(jù)與計(jì)算分離是指計(jì)算服務(wù)單獨(dú)部署,存儲(chǔ)服務(wù)通過網(wǎng)絡(luò)為計(jì)算服務(wù)提供數(shù)據(jù)。通過網(wǎng)絡(luò)也就意味著可以有多種協(xié)議模式可選,除了傳統(tǒng)的HDFS,目前常用的就是對(duì)象存儲(chǔ),比如兼容S3的各類服務(wù),也可以是分布式文件系統(tǒng),可以根據(jù)數(shù)據(jù)類型和實(shí)際需要合理選擇。計(jì)算服務(wù)(spark worker) 可以根據(jù)任務(wù)的需要靈活的在分布式集群中分配計(jì)算資源。
Master節(jié)點(diǎn)主備高可用
Spark 基于 ZooKeeper可以提供master服務(wù)的主備切換。 配置方式也比較簡(jiǎn)單。
Rainbond 云原生應(yīng)用管理平臺(tái),實(shí)現(xiàn)微服務(wù)架構(gòu)不用改代碼,管理 Kubernetes 不用學(xué)容器,幫企業(yè)實(shí)現(xiàn)應(yīng)用上云,一站式將任何企業(yè)應(yīng)用持續(xù)交付到 Kubernetes 集群、混合云、多云等基礎(chǔ)設(shè)施。是 Rainstore 云原生應(yīng)用商店的支撐平臺(tái)。
上述就是小編為大家分享的Rainbond怎樣實(shí)現(xiàn)部署Spark Standalone 集群了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文標(biāo)題:Rainbond怎樣實(shí)現(xiàn)部署SparkStandalone集群
當(dāng)前URL:http://www.xueling.net.cn/article/gdcsho.html