繁体   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