任务仅在 Spark 中的一个执行器上运行[重复]

2024-02-02

我正在使用 Java 在 Spark 中运行以下代码。

Code

测试.java

package com.sample;

import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.functions;
import org.apache.spark.storage.StorageLevel;

import com.addition.AddTwoNumbers;

public class Test{

    private static final String APP_NAME = "Test";
    private static final String LOCAL = "local";
    private static final String MASTER_IP = "spark://10.180.181.26:7077";

    public static void main(String[] args) {

        SparkConf conf = new SparkConf().setAppName(APP_NAME).setMaster(MASTER_IP);
        String connection = "jdbc:oracle:thin:test/test@//xyz00aie.in.oracle.com:1521/PDX2600N";
        // Create Spark Context
        SparkContext context = new SparkContext(conf);
        // Create Spark Session

        SparkSession sparkSession = new SparkSession(context);
        long startTime = System.currentTimeMillis();
        System.out.println("Start time is : " + startTime);
        Dataset<Row> txnDf = sparkSession.read().format("jdbc").option("url", connection)
                .option("dbtable", "CI_TXN_DETAIL_STG_100M").load();

        System.out.println(txnDf.filter((txnDf.col("TXN_DETAIL_ID").gt(new Integer(1286001510)))
                .and(txnDf.col("TXN_DETAIL_ID").lt(new Integer(1303001510)))).count());


        sparkSession.stop();
    }

}

我只是想找到行范围的计数。范围是2000万。

下面是 Spark 仪表板的快照

在这里我可以看到Active任务仅在一个 Executor 上执行。 我总共有 10 个 Executor 正在运行。

我的问题

为什么我的应用程序在一个执行器上显示活动任务,而不是将其分布到所有 10 个执行器上?

下面是我的火花提交命令 :

./spark-submit --class com.sample.Test--conf spark.sql.shuffle.partitions=5001 --conf spark.yarn.executor.memoryOverhead=11264 --executor-memory=91GB --conf spark.yarn.driver.memoryOverhead=11264 --driver-memory=91G --executor-cores=17  --driver-cores=17 --conf spark.default.parallelism=306 --jars /scratch/rmbbuild/spark_ormb/drools-jars/ojdbc6.jar,/scratch/rmbbuild/spark_ormb/drools-jars/Addition-1.0.jar --driver-class-path /scratch/rmbbuild/spark_ormb/drools-jars/ojdbc6.jar --master spark://10.180.181.26:7077 "/scratch/rmbbuild/spark_ormb/POC-jar/Test-0.0.1-SNAPSHOT.jar" > /scratch/rmbbuild/spark_ormb/POC-jar/logs/log18.txt

看起来所有数据都在一个分区中读取,并转到一个执行器。 为了使用更多的执行器,必须创建更多的分区。 参数“numPartitions”可以与分区列一起使用,如下所示:

https://docs.databricks.com/spark/latest/data-sources/sql-databases.html#jdbc-reads https://docs.databricks.com/spark/latest/data-sources/sql-databases.html#jdbc-reads

此链接也很有用:

Spark:read.jdbc(..numPartitions..) 和 repartition(..numPartitions..) 中 numPartitions 之间的差异 https://stackoverflow.com/questions/48276241/spark-difference-between-numpartitions-in-read-jdbc-numpartitions-and-repa

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

任务仅在 Spark 中的一个执行器上运行[重复] 的相关文章

随机推荐

  • 如何使 BoxLayout 表现得像垂直 FlowLayout?

    FlowLayout从右侧执行 压力 因此所有组件都试图采用其最小宽度 相反 BoxLayout尝试分散所有组件以填充空间的整个高度 我可以添加一些填充物作为最后一个组件还是使所有组件的高度最小BoxLayout 您可以使用 Box cre
  • 当在下拉列表中选择值时,MVC 使用 ajax 发布值

    我的表单中有几个下拉列表 每次用户在这些下拉列表之一中选择一个值时 我是否希望将该值保存到后端 数据库 我不想重新加载页面 所以我想实现这一点的最佳方法是使用ajax 这就是我需要的帮助 当我在下拉列表中选择一个值时 如何让它自动将值发布到
  • 如何在 Python 2 中发送 HEAD HTTP 请求?

    我在这里尝试做的是获取给定 URL 的标头 以便确定 MIME 类型 我想看看是否http somedomain foo 例如 将返回 HTML 文档或 JPEG 图像 因此 我需要弄清楚如何发送 HEAD 请求 以便我可以读取 MIME
  • 从cmd命令中获取字符串?进程.StartInfo

    所以我尝试过 Process 并启动 cmd exe 并将命令直接发送到该窗口 然后获取写入 cmd exe 窗口的值 代码如下所示 Dim arrServers As ArrayList Dim s ListBoxServers Item
  • 通过 ssh 将脚本和二进制数据传输到 stdin

    我想远程执行一个 bash 脚本 该脚本使用 tarball 并对其执行一些逻辑 诀窍是我只想使用一个 ssh 命令来完成此操作 而不是scp对于 tarball 然后是ssh对于脚本 bash 脚本如下所示 cd tmp tar zx a
  • 过滤唯一值并对 A 到 Z 进行排序 Excel VBA

    我一直在使用下面的代码来过滤唯一值Sheet1并将它们粘贴到Sheet2我的代码工作正常 但它有一个问题 当我从 Sheet1 Range C4 C 单元格中删除任何值时 它会给出空单元格Sheet2就像下面的图片一样 我希望如果我从 Sh
  • 在 python 中使对象可调用的问题

    我写了这样的代码 gt gt gt class a object def init self self call lambda x x gt gt gt b a 我期望类的对象a应该是可调用对象 但显然不是 我不明白为什么 gt gt gt
  • 通过应用具有多个返回值的函数创建多个 pandas DataFrame 列

    我想应用一个具有多个返回值的函数pandas DataFrame并将结果放入单独的新列中DataFrame 所以给出这样的事情 import pandas as pd df pd DataFrame data a 1 2 3 b 4 5 6
  • 如何通过 CSS 和 Javascript 切换多个隐藏字段的显示?

    我想知道如何通过下拉选项切换多个 HTML 字段的显示 假设我有一个包含 3 个选项的下拉菜单 分支机构 区域和部门 如果我选择 分支机构 我希望其下方显示 3 个字段 分支机构编号 站点编号 ID 编号 我对 JavaScript 的了解
  • C# SSL WebSocket 客户端中有 .net 4.0 吗?

    我想知道目前是否有关于这个主题的任何内容 我找到了各种例子EG 4 5 system net websockets websocket http msdn microsoft com en us library system net web
  • 从地图容器中查找大于用户指定值的第一个值

    我有一个地图容器 如何使用 find if 返回第一个大于用户指定搜索值的值 如下所示 std map
  • 如何获取重定向的 URL

    我有一个 URL 当我尝试在浏览器中打开它时 它将重定向到另一个 URL 并显示内容 我想要该内容 但我没有收到重定向的 URL 所以 我无法显示数据 我怎样才能以编程方式做到这一点 例如我有的网址 http www windpoweren
  • 从相同源代码生成的两个DLL文件有什么区别

    我的所有代码都受源代码控制 因此我 100 确定源代码没有更改 但是 如果我构建 C DLL 两次 它们的内容会略有不同 我可以通过构建然后再次构建来 100 重现问题 这似乎根本不会影响程序 但是像 MSIMSP 这样用于从两个 MSI
  • 是否可以在mysql语句中运行apriori关联规则?

    数据库 Transacation Items List T1 butter T1 jam T2 butter T3 bread T3 ice cream T4 butter T4 jam 在上表中 是否可以在mysql语句中运行aprior
  • Crypto++ AES 解密如何?

    那里几乎没有关于 crypto 的菜鸟指南 或者无论如何我都没有找到 我想要做的是解密使用另一个 AES 加密器生成的 uchar 数组 我该从哪里开始呢 我已经建立了图书馆并链接了盛大的图书馆 我是否需要设置任何内容 或者只是在数组上调用
  • 如何在 C# 中生成 JSON Web 密钥 (JWK)

    我需要使用 C 生成 JSON Web Key jwk 如图所示 我已经阅读了几篇文章 但也有其他语言 例如 Java 的实现 并且有第三方库 Nimbus JOSE JWT 库等 您能帮我用 C 生成 JSON Web Key 吗 e A
  • 如何在骆驼单元测试中模拟多个组件?

    我正在使用CamelTestSupport在骆驼版本 2 13 1 中 我想做这样的事情来模拟两个不同的组件 Override public String isMockEndpoints return activemq exec 我不能只是
  • 在Python中重写OptionParser的add_option函数

    我写了一个子类Option and OptionParser在 optparse 中 我正在重写add optionOptionParser 中的函数使其解析新关键字 以下是我的代码 from optparse import Option
  • java读取动态网页内容

    我需要帮助阅读网页内容 目前我正在使用以下方法来读取内容 BufferedReader in new BufferedReader new InputStreamReader page openStream String inputLine
  • 任务仅在 Spark 中的一个执行器上运行[重复]

    这个问题在这里已经有答案了 我正在使用 Java 在 Spark 中运行以下代码 Code 测试 java package com sample import org apache spark SparkConf import org ap