Apache spark 需要帮助了解Pypark作为主控器在纱线上的执行情况吗

Apache spark 需要帮助了解Pypark作为主控器在纱线上的执行情况吗,apache-spark,pyspark,yarn,Apache Spark,Pyspark,Yarn,我已经有了一些关于纱线建筑和火花建筑的图片。但是当我试图把它们结合在一起理解时(事情就是这样发生的) 当Aark作业在Hadoop集群上运行时,我遇到了一些困惑。因此,首先我将用下面的示例说明我的理解,然后我将 让我困惑吧 假设我有一个文件“orderitems”存储在HDFS上,带有一些复制因子。 现在,我通过将此文件读入spark RDD(例如,用于计算订单收入)来处理数据。 我已经编写了代码并配置了spark submit,如下所示 spark-submit \ --mas

我已经有了一些关于纱线建筑和火花建筑的图片。但是当我试图把它们结合在一起理解时(事情就是这样发生的) 当Aark作业在Hadoop集群上运行时,我遇到了一些困惑。因此,首先我将用下面的示例说明我的理解,然后我将 让我困惑吧

假设我有一个文件“orderitems”存储在HDFS上,带有一些复制因子。 现在,我通过将此文件读入spark RDD(例如,用于计算订单收入)来处理数据。 我已经编写了代码并配置了spark submit,如下所示

    spark-submit \
    --master yarn \
    --conf spark.ui.port=21888 \
    --num-executors 2 \
    --executor-memory 512M \
    src/main/python/order_revenue.py
假设我已经创建了分区为5的RDD,并且我已经在客户机模式下执行

现在据我所知,一旦我提交了关于纱线的spark作业

  • 请求转到作为资源组件的应用程序管理器 经理
  • Application Manager将找到一个节点管理器,并要求它启动 容器
  • 这是应用程序的第一个容器,我们将其称为 应用程序管理员
  • 应用程序主机接管执行和监视的责任 工作
由于我以客户端模式提交,驱动程序将在我的边缘节点/网关节点上运行。 我已经将num executors设置为2,executor内存设置为512MB

我还为RDD提供了5个分区,这意味着它将创建5个数据读取分区 并分布在5个节点上

这里是我对这件事的一些困惑

  • 我在用户指南中读到,rdd的分区将被分配到不同的节点。这些节点是否与其他节点相同 HDFS群集的“数据节点”?我的意思是这里有5个分区,是吗 这意味着它在5个数据节点中

  • 我已经提到num executors为2。所以这5个数据分区将使用2个执行器(CPU)。所以我的下一个问题是,从哪里开始 将选取这2个执行器(CPU)?我的意思是5个节点中有5个分区 对,那么这两个执行器是否也在这些节点中

  • 调度器负责将资源分配给受容量限制的各种正在运行的应用程序, 队列等,还有一个容器是Linux控制组,它是 linux内核特性,允许用户分配 CPU、内存、磁盘I/O和用户进程的带宽。所以我的期末考试 问题是容器实际上是由“调度器”提供的
我在这里感到困惑。我参考了架构、发布文档和一些视频,结果搞砸了


期待您的帮助。

首先回答您的问题:

1) 非常简单,执行器是spark的工作节点,驱动程序是管理器节点,与hadoop节点无关。假设执行者是处理单元(这里假设为2个),重分配(5)将数据分成5个块,由这2个执行者分配,并且在某种基础上,这些数据块将被分成2个执行者。重新分区数据不会创建节点

Spark群集体系结构:

纱线上的火花客户端模式:

纱线簇火花模式:

有关其他详细信息,请阅读博客文章