为什么Apache Livy会话显示应用程序ID为NULL?

问题描述 投票:2回答:1

我已经实现了一个功能齐全的Spark 2.1.1独立集群,我使用Apache Livy 0.4通过curl命令POST作业批处理。在咨询Spark WEB UI时,我看到我的工作及其应用程序ID(类似于:app-20170803115145-0100),应用程序名称,核心,时间,状态等。但在咨询Livy WEB UI(默认为http://localhost:8998)时,我看到了以下结构:

| Batch Id | Application Id | State   |
| -------- | -------------- | ------- |
| 219      | null           | success |
| 220      | null           | running |

如果我获得所有批次的状态,我会得到以下结果:

{
  "from": 0,
  "total": 17,
  "sessions": [
    {
      "id": 219,
      "state": "success",
      "appId": null,
      "appInfo": {
        "driverLogUrl": null,
        "sparkUiUrl": null
      },
      "log": ["* APPLICATION OUTPUT"]
    },
    {
      "id": 220,
      "state": "running",
      "appId": null,
      "appInfo": {
        "driverLogUrl": null,
        "sparkUiUrl": null
      },
      "log": ["* APPLICATION OUTPUT"]
    },       
  ]
}

这显然是正确的,但我总是在appId字段中看到null值,还有driverLogUrl和sparkUiUrl。

该字段是否显示与我在Spark WEB UI中看到的相同的应用程序ID?如果是这样,我该如何配置它或它必须是自动的?不知道我是否在livy.conf或livy-env.sh文件中遗漏了一些配置行,因为我找不到任何关于此的示例或文档。

这是我的livy.conf文件:

livy.server.host = IP_ADDRESS
livy.server.port = 8998
livy.spark.master = spark://MASTER_IP_ADDRESS:PORT
livy.spark.deploy-mode = cluster
livy.ui.enabled = true

这是livy-env.sh文件:

export JAVA_HOME=/opt/java8/jdk1.8.0_91
export SPARK_HOME=~/sparkFiles/spark-2.1.1-bin-hadoop2.7
export SPARK_CONF_DIR=${SPARK_HOME}/conf
export LIVY_LOG_DIR=~/LivyRestServer/logs

如果您需要更多信息,请与我们联系。


更新对于那些有同样问题的人。不幸的是,使用独立集群管理器我无法修复,但后来我有必要将其更改为YARN以更好地管理池和队列,并且神奇地修复了问题,我能够看到所有这些信息。不知道为什么独立管理器不能将applicationId推送到Livy,但是YARN确实如此,所以,它只是单独修复,我没有在Livy conf中改变任何东西。文件要么。

apache-spark apache-spark-2.0 apache-spark-standalone livy
1个回答
1
投票

livy.conf

livy.spark.master默认为本地模式,需要设置纱线模式;

也许这是一个有趣的错误,从设计的角度来看,它也应该在本地模式下获得。未来只有纱线模式才有可能。

© www.soinside.com 2019 - 2024. All rights reserved.