簡體   English   中英

紗線概念理解的火花

[英]Spark on yarn concept understanding

我試圖了解 spark 如何在 YARN 集群/客戶端上運行。 我有以下疑問。

  1. 是否有必要在yarn集群中的所有節點上都安裝spark? 我認為應該是因為集群中的工作節點執行任務並且應該能夠解碼驅動程序發送到集群的 spark 應用程序中的代碼(spark API)?

  2. 它在文檔中說“確保HADOOP_CONF_DIRYARN_CONF_DIR指向包含 Hadoop 集群(客戶端)配置文件的目錄”。 為什么客戶端節點在將作業發送到集群時必須安裝Hadoop?

添加到其他答案。

  1. 是否有必要在yarn集群中的所有節點上都安裝spark?

,如果 spark 作業在 YARN( clientcluster模式)中調度。 許多節點只需要在獨立模式下安裝 Spark。

這些是 Spark 應用程序部署模式的可視化。

Spark 獨立集群Spark 獨立模式

cluster模式下,驅動程序位於 Spark Worker 節點之一,而在client模式下,它將位於啟動作業的機器內


YARN集群模式YARN集群模式

YARN 客戶端模式YARN 客戶端模式

下表提供了這些模式之間差異的簡明列表:

Standalone、YARN Cluster 和 YARN Client 模式之間的差異

圖片來源

  1. 它在文檔中說“確保 HADOOP_CONF_DIR 或 YARN_CONF_DIR 指向包含 Hadoop 集群(客戶端)配置文件的目錄”。 為什么客戶端節點在將作業發送到集群時必須安裝Hadoop?

Hadoop 安裝不是強制性的,但配置(不是全部)是!。 我們可以稱它們為網關節點 主要有兩個原因。

  • HADOOP_CONF_DIR目錄中包含的配置將分發到 YARN 集群,以便應用程序使用的所有容器都使用相同的配置。
  • 在 YARN 模式下,ResourceManager 的地址是從 Hadoop 配置( yarn-default.xml )中獲取的。 因此, --master參數是yarn

**更新:(2017-01-04)**

Spark 2.0+不再需要用於生產部署的胖組裝 jar 來源

我們在 YARN 上運行 Spark 作業(我們使用 HDP 2.2)。

我們沒有在集群上安裝 spark。 我們只將 Spark 程序集 jar 添加到 HDFS。

例如運行 Pi 示例:

./bin/spark-submit \
  --verbose \
  --class org.apache.spark.examples.SparkPi \
  --master yarn-cluster \
  --conf spark.yarn.jar=hdfs://master:8020/spark/spark-assembly-1.3.1-hadoop2.6.0.jar \
  --num-executors 2 \
  --driver-memory 512m \
  --executor-memory 512m \
  --executor-cores 4 \
  hdfs://master:8020/spark/spark-examples-1.3.1-hadoop2.6.0.jar 100

--conf spark.yarn.jar=hdfs://master:8020/spark/spark-assembly-1.3.1-hadoop2.6.0.jar - 這個配置告訴紗線從是采取火花組件。 如果您不使用它,它將從您運行spark-submit上傳 jar。

關於您的第二個問題:客戶端節點不需要安裝 Hadoop。 它只需要配置文件。 您可以將目錄從集群復制到客戶端。

1 - 如果遵循從/主架構,則 Spark。 所以在你的集群上,你必須安裝一個 spark master 和 N 個 spark slaves。 您可以在獨立模式下運行 spark。 但是使用 Yarn 架構會給你帶來一些好處。 這里有一個很好的解釋: http : //blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/

2- 例如,如果您想使用 Yarn 或 HDFS,這是必要的,但正如我之前所說,您可以在獨立模式下運行它。

讓我試着剪掉膠水,讓它變得不耐煩。

6 個組件:1. 客戶端,2. 驅動程序,3. 執行程序,4. 應用主程序,5. 工作線程,6. 資源管理器; 2種部署模式 2 資源(集群)管理

這是關系:

客戶

沒什么特別的,就是提交 spark 應用程序。

工人、執行者

沒什么特別的,一個工人擁有一個或多個執行者。

Master, & 資源(集群)管理器

(無論是客戶端還是集群模式)

  • yarn 中,資源管理器和主節點位於兩個不同的節點;
  • standalone 中,資源管理器 == master,在同一個節點中的同一個進程。

司機

  • 客戶端模式下,與客戶端坐在一起
  • yarn - cluster 模式下,與 master 坐在一起(在這種情況下,客戶端進程在提交應用程序后退出)
  • 獨立集群模式下,與一名工作人員坐在一起

瞧!

暫無
暫無

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

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