gpt4 book ai didi

apache-spark - 通过 livy batch API 从 driverLogUrl 读取 spark stdout

转载 作者:行者123 更新时间:2023-12-04 04:19:43 25 4
gpt4 key购买 nike

Livy 有一个批处理日志端点:GET/batches/{batchId}/log,在 How to pull Spark jobs client logs submitted using Apache Livy batches POST method using AirFlow 中指出

据我所知,这些日志是 livy 日志,不是 spark 驱动程序日志。我在打印到驱动程序日志标准输出的 pyspark 作业中有一个 print 语句。

我可以通过描述批处理端点https://livy.incubator.apache.org/docs/latest/rest-api.html#batch找到驱动程序日志URL:通过访问json response['appInfo']['driverLogUrl'] URL 并点击日志

json 响应 url 如下所示:http://ip-some-ip.emr.masternode:8042/node/containerlogs/container_1578061839438_0019_01_000001/livy/ 我可以点击进入 html 页面使用添加的 url 叶:stdout/?start=-4096 查看日志...

事实上,我只能得到一个 stdout 的 HTML 页面,yarn/emr/hadoop 资源管理器中是否存在类似 JSON API 版本的这个 stdout(最好是 stderr) ?否则,livy 是否能够以某种方式检索这些驱动程序日志

或者,这是一个问题,因为我使用的是 cluster 模式而不是 client。当我尝试使用 client 模式时,我一直无法使用 python3PYSPARK_PYTHON,这可能是针对不同的问题,但是如果我能够使用不同的 deployMode 获取驱动程序的标准输出,那也可以。

如果重要的话,我正在使用 EMR 运行集群

最佳答案

我遇到了同样的问题。简短的回答是它只适用于客户端模式,而不适用于集群模式。

这是因为我们尝试从主节点获取所有日志。但是打印信息是本地的,来自驱动节点。

当spark运行在“client mode”时,driver节点就是你的master节点,所以我们同时获取日志信息和打印信息,因为它们在同一台物理机上

但是,当spark运行在“集群模式”时,情况就不一样了。在这种情况下,驱动程序节点是您的工作节点之一,而不是您的主节点。因此我们丢失了打印信息,因为 livy 只从主节点获取信息

关于apache-spark - 通过 livy batch API 从 driverLogUrl 读取 spark stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59650722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com