簡體   English   中英

YARN如何在集群模式下了解Apache Spark中的數據位置

[英]How YARN knows data locality in Apache spark in cluster mode

假設有一個Spark作業將從HDFS讀取一個名為records.txt的文件,並進行一些轉換和一個操作(將處理后的輸出寫入HDFS)。 作業將被提交到YARN集群模式

還要假設records.txt是一個128 MB的文件,並且其中一個HDFS復制塊也位於NODE 1中

可以說YARN正在分配的是NODE 1內部的執行程序。

YARN如何在輸入數據所在的節點中准確分配執行程序?

誰告訴YARN,NODE 1中提供了records.txt復制的HDFS塊之一?

Spark Application如何找到數據局部性? 它是由運行在Application Master中的驅動程序完成的嗎?

YARN是否知道數據位置?

這里的基本問題是:

YARN是否知道數據位置?

YARN“知道”什么應用程序告訴它,並且它了解集群的結構(拓撲)。 當應用程序發出資源請求時,它可以包括特定的局部性約束 ,分配資源時可能會或可能不會滿足。

如果無法指定約束,則YARN(或任何其他集群管理器)將基於其對集群拓撲的了解,嘗試提供最佳的替代匹配。

那么應用程序如何“知道”

如果應用程序使用支持某種形式的數據局部性的輸入源(文件系統或其他),則它可以向其查詢相應的目錄(對於HDFS,則為namenode),以獲取要訪問的數據塊的位置。

從廣義上講,Spark RDD可以根據特定的RDD實現來定義preferredLocations ,稍后可以將其轉換為集群管理器(不一定是YARN)的資源約束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM