问题标签 [spark-webui]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 如何以编程方式在 Stages 选项卡中获取 Web UI 信息,例如“已完成任务的摘要指标”?
我想在我的 scala 代码中获得“已完成任务的摘要指标”。此信息可在 Spark webUI 中找到:
apache-spark - 为什么在多次使用表时,Apache Spark UI 中的指标“输出行数”显示的值高于表的大小?
我在 TPCDS 基准的查询 47 中第一次遇到这种行为。
为澄清起见,这是查询。
正如我们所见,该表v1
在查询中被使用了 3 次
Web UI 中的图形如下
正如我们在左图中看到的那样,表的值number of output rows
等于表store_sales
的2,879,789
大小。
但是,在右图中,它显示number of output rows
同一张表的 等于5,759,578
并且该值传播到下一个计划,例如Filter
。
我们可以通过更简单的查询来获得相同的结果。
该查询的图表如下
正如我们所看到的,number of output rows
它比表格的大小高两倍。此外,如果我们再添加一次表 v1 number of output rows
,则表的大小是表的三倍,以此类推。
例如,如果我们像这样更改查询
number of output rows
变成 9 。
值得一提的是,如果我们v1
只使用该表两次,则number of output rows
变为等于表大小。
所以,像这样的查询
number of output rows
变成 3 。
在这样的情况下,我希望 Spark 加载表的次数与需要的表一样多次,或者加载表一次,然后在需要时重用它,但似乎我的两个假设都是错误的。
那么,为什么输出行数高于表大小?
我已经在 Spark 2.2 和 2.3 中对此进行了测试。
apache-spark - 从 ps 和 web-ui 隐藏 Spark 环境变量值
我在 Mac 上使用 Java 中的 Spark 2.3.1。
我将机密安全信息存储在环境变量中。但是,由于它是机密的,我不想通过ps -e
或 from暴露它的价值http://localhost:4040/environment/
。
Spark 中有没有办法让我隐藏这个值?或者无论如何通过代码密封值,同时不影响其他 Spark/Java 功能。
apache-spark - apache spark:重新启动后已删除已完成的应用程序历史记录
当我重新启动 Spark 集群时,Web ui 中已完成应用程序的所有历史记录都将被删除。重新启动时如何保留此历史记录不被删除?
apache-spark - 无法连接到打开的班次容器内的 Spark Web UI
我在开放的班次容器中运行我的 spark 应用程序。该应用程序运行近 2-4 小时。我确实收到了从http://hostname:4040开始的 sparkUI 消息。但是当我点击它时,即使应用程序仍在运行,我也找不到网页。
performance - 了解 Apache Spark Web UI 性能指标
我是 Spark 的新手,我正在尝试了解与我的 Spark 应用程序(通过 Dataset API 开发)相关的 Web UI 中的指标。我看过 Spark Summit 和 Databricks 的一些视频,我观看的大部分视频都是关于 Web UI 的一般概述,例如:阶段/作业/任务的定义,如何理解什么时候不能正常工作(例如不平衡执行者之间的工作),关于编程时要避免的事情的建议等。
但是,我找不到每个性能指标的详细说明。特别是我有兴趣了解以下图像中与包含 groupBy(Col1, Col2)、orderBy(Col1, Col2) 和 show() 的查询相关的内容。
如果我理解得很好,默认的最大分区大小设置为 128 MB。由于我的数据集大小为 1378MB,我得到了 11 个使用 128MB 的任务,对吧?由于在第一阶段我做了一些过滤(在应用 groupBy 之前)任务写入内存,所以 Shuffle Write 是 108.3KB 但为什么我会在第二阶段获得 200 个任务?
在groupBy之后我使用了orderBy,任务的数量是与我的数据集的情况有关还是与它的大小有关?
更新:我发现这个spark.sql.shuffle.partitions 的 200 个默认分区难题和其他一些问题,但现在我想知道它是否有特定的原因是 200?
为什么有些任务在这里有结果序列化?如果我理解得很好,那么序列化与输出有关,所以任何 show()、count()、collect() 等。但在这个阶段,这些操作不存在(在 groupBy 之前)。
结果序列化时间占很大一部分是否正常?我调用了 show() (默认情况下需要 20 行,并且有一个 orderBy),所以所有任务都并行运行并且序列化了它的所有记录?
为什么只有一项任务有相当长的随机读取时间?我希望所有人都至少有少量的随机读取时间,这又与我的数据集有关?
反序列化时间与读取我的数据集文件有关吗?我问是因为我没想到它在那里,因为它是第 1 阶段并且它已经存在于第 0 阶段。
由于我正在处理从同一数据集开始的 3 个查询,因此我在第一个查询的开头使用了 cache()。我想知道为什么它显示 739.9MB / 765 [输入大小/记录] ...在第一个查询中它显示 1378.8 MB / 7647431 [输入大小/记录]。
我猜它有 11 个任务,因为缓存的数据集大小仍然是 1378MB,但 765 与最初的 7647431 相比是一个非常低的数字,所以我认为它与记录/行无关,对吧?
谢谢阅读。
windows - Spark 历史服务器设置
我正在尝试在本地设置 Spark History 配置服务器。我正在使用 Windows 和 Pycharm 进行 Pyspark 编程。我可以在 localhost:4040 查看 Spark Web-UI。我做过的事情是:
spark-defaults.conf:(我在其中添加了最后三行。)
运行历史服务器
成功运行 Pyspark 程序后,我无法在 Spark-History-server Web UI 上查看作业详细信息。虽然服务器已启动。如下所示:
我已经使用的参考资料:
我使用的代码如下:
请帮助我如何实现相同的目标。我将提供所需的任何数据。
我也尝试过使用目录路径: