amazon-web-services - 在具有默认配置的EMR群集模式下会发生什么?

我在Amazon Emr上运行具有以下阶段和配置的Spark应用程序

阶段:

        dstream.map(record => transformRecord).map(result => result._1).flatMap(rd => rd).foreacRDD(rdd => { rdd.toDF; df.save() })

组态:
在纱簇模式下,1个主节点和2个核心节点。所有其他spark属性均为默认设置,默认为2个spark执行程序,4个spark执行程序核心,内存为2g

用例:

使用来自消息代理的json记录流,对其进行转换,并将其持久保存到数据库中

问题:
  • 在执行spark-submit时使用了此配置-我看到只有一个spark执行器正在使用记录并对其进行处理。另一个就像一个调度程序。为什么会这样?
  • 从某种意义上说,如何增加并行处理会消耗更多记录并单独执行它们? (执行人员数量的增加是否会有所不同)
  • Spark 执行器和 yarn 上 Spark 的并行性之间有什么关系?
  • 最佳答案

    阅读了多个博客后,尝试了一些方法,

    回答:

  • 第一映射阶段由来自kafka / kinesis的 Spark 接收器线程支持。因此,它们侦听一个碎片和一个线程,创建多个dstream以增加读取并行度。

  • 剩下的还没有弄清楚它们。

    https://stackoverflow.com/questions/56305073/

    相关文章:

    docker - Bluemix上的Docker run命令不允许正确设置环境变量

    hadoop - Hive Joins可以在Apache Nifi中实现吗?

    hadoop - 如何在Java UDF中加载H20训练有素的模型

    hadoop - hadoop fs -mkdir:没有这样的目录

    hadoop - 如何在长度大于VARCHAR(32k)的BIGSQL表中存储字符串数据

    mongodb - 从BSON文件创建Hive表时,列值变为NULL

    hadoop - 如何在本地获取此输出

    docker - 在Bluemix容器上安装卷并在它们之间共享不起作用

    docker - 使用RUN的结果来设置变量

    docker - 外部服务在运行时设置的转发容器端口