为啥 Apache Livy 会话显示应用程序 id 为 NULL?

Posted

技术标签:

【中文标题】为啥 Apache Livy 会话显示应用程序 id 为 NULL?【英文标题】:Why is Apache Livy session showing Application id NULL?为什么 Apache Livy 会话显示应用程序 id 为 NULL? 【发布时间】:2017-08-03 16:27:30 【问题描述】:

我已经实现了一个功能齐全的 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 |

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


  "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 字段中看到空值,还有 driverLogUrlsparkUiUrl

该字段是否假设显示与我在 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 中的任何内容。文件。

【问题讨论】:

您找到解决问题的方法了吗? 使用独立集群管理器很遗憾没有,但后来我不得不将其更改为 YARN 以更好地管理池和队列,这神奇地解决了问题,我能够看到所有这些信息。不知道为什么独立管理器不能将 applicationId 推送到 Livy,但是 YARN 可以,所以它只是自行修复,我没有更改 Livy conf 中的任何内容。文件。 哦,我明白了,感谢您的快速响应! 【参考方案1】:

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

也许是个活的bug,从设计的角度来说,应该也是在本地模式下获取的。 未来也可能只为yarn模式而热闹。

【讨论】:

以上是关于为啥 Apache Livy 会话显示应用程序 id 为 NULL?的主要内容,如果未能解决你的问题,请参考以下文章

成功创建火花上下文后,Livy 会话卡在启动

在 Zeppelin 上使用 Apache Livy 解释器时,Matplotlib 不绘图

Apache Livy:通过 REST 查询 Spark SQL:可能吗?

Apache Spark和Livy集群

Livy REST API:GET 请求有效,但 POST 请求失败并显示“需要 401 身份验证”

关于livy的 java api 报错org.apache.livy.shaded.kryo.kryo.KryoException: Unable to find class: com.xxx.wor