您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么指定Spark2中Driver和Executor使用指定范圍內端口”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1.文檔編寫目的
在CDH集群中提交Spark作業,大家也都知道Spark的Driver和Executor之間通訊端口是隨機的,Spark會隨選擇1024和65535(含)之間的端口,因此在集群之間不建議啟用防火墻。本篇文章Fayson主要介紹如何指定Spark2作業中Driver和Executor使用指定范圍內的端口進行通訊。
內容概述
1.配置Spark Driver和Executor端口范圍
2.驗證端口分配
測試環境
1.CM和CDH版本為5.15
2.Spark版本為2.2.0
2.配置Spark Driver和Executor端口范圍
1.登錄到CM管理界面,進入Spark服務的配置界面
2.在Gateway分類中配置也搜索“spark-defaults.conf”,添加如下配置:
spark.driver.port=10000
spark.blockManager.port=20000
spark.port.maxRetries=999
(可左右滑動)
3.保存配置,并重新部署Spark2的客戶端配置
3.驗證端口分配
1.向集群提交一個Spark2的作業
spark2-submit --class org.apache.spark.examples.SparkPi\
--master yarn --num-executors 4 --driver-memory 1g\
--driver-cores 1 --executor-memory 1g --executor-cores 1\
/opt/cloudera/parcels/SPARK2/lib/spark2/examples/jars/spark-examples_2.11-2.2.0.cloudera2.jar 10000
(可左右滑動)
2.查看Spark作業的運行界面查看Driver和Executor使用的端口號
4.總結
本篇文章Fayson主要是以Spark2為例說明限制Driver和Executor使用指定范圍內的端口號。細心的朋友可以看到Driver啟動的時候會監聽兩個端口示例中是10001和20000。關于這兩個端口的解釋如下:
1.spark.driver.port的10001端口是用來監聽來自executor的請求,在executor起來的時候需要與drive通信并獲取具體的任務信息,是driver使用的管理調度用端口。
2.spark.blockManager.port(20000)端口是driver和executor直接數據傳輸端口(比如cached data frame, broadcast vars)。
3.在Spark運行中,blockManager將不會和YARN交互,而driver是會和YARN中運行的Application Master進程交互。
4.Spark2中指定Executor的端口號是通過spark.blockManager.port指定與Spark1的(spark.executor.port)指定參數不同。
“怎么指定Spark2中Driver和Executor使用指定范圍內端口”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。