我注意到,當我使用yarn開始spark提交作業時,驅動程序和執行程序節點會隨機設置。是否可以手動進行設置,以便在收集數據並將其寫入文件時,每次都可以在同一節點上寫入數據?在Spark上手動設置驅動程序通過Yarn集羣提交
截至目前,我試圖玩弄的參數是: spark.yarn.am.port <driver-ip-address>
和 spark.driver.hostname <driver-ip-address>
謝謝!
我注意到,當我使用yarn開始spark提交作業時,驅動程序和執行程序節點會隨機設置。是否可以手動進行設置,以便在收集數據並將其寫入文件時,每次都可以在同一節點上寫入數據?在Spark上手動設置驅動程序通過Yarn集羣提交
截至目前,我試圖玩弄的參數是: spark.yarn.am.port <driver-ip-address>
和 spark.driver.hostname <driver-ip-address>
謝謝!
如果您向Yarn提交--master yarn --deploy-mode client
,驅動程序將位於您要提交的節點上。
您也可以使用財產執行人配置節點標籤:spark.yarn.executor.nodeLabelExpression
制約節點集執行人的紗線節點標籤表達將在安排。只有大於或等於2.6的YARN版本才支持節點標籤表達式,所以在針對早期版本運行時,該屬性將被忽略。
火花集羣可以在任一或yarncluster紗線客戶機模式運行。
在紗線羣集模式下,Spark驅動程序在由羣集上的YARN管理的應用程序主進程內運行,並且客戶機可以在啓動應用程序後消失。
在紗線客戶端模式下,驅動程序在客戶端 進程中運行,而應用程序主服務器僅用於從YARN請求資源。
所以,正如你所看到的,取決於模式,火花會啓動應用程序主控。在這個階段之前它不會隨機發生。但是,應用程序主管請求資源管理器執行任務的工作節點將根據工作節點的可用性隨機挑選。