apache-spark - 为什么 Apache Livy session 显示应用程序 ID 为 NULL?

标签 apache-spark apache-spark-2.0 apache-spark-standalone livy

我已经实现了一个功能齐全的 Spark 2.1.1 独立集群,其中我 发布 作业批次通过 curl命令使用 Apache Livy 0.4。在咨询 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 场,也是 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 中更改任何内容。文件。

最佳答案

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

可能是一个活泼的bug,从设计的角度来看,应该也是在本地模式下获取的。
future 也可能只为 yarn 模式活跃。

关于apache-spark - 为什么 Apache Livy session 显示应用程序 ID 为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45489852/

相关文章:

hadoop - 我可以强制 YARN 使用 Application Master 容器的主节点吗?

java - 使用另一个数据集中的值搜索和更新 Spark 数据集列

docker - 在Docker中启动工作节点并连接到在主机OS上运行的主节点

apache-spark - Worker 无法连接到 Spark Apache 中的 master

apache-spark - 执行者在 Spark 主机上的角色

java - 使用 java 在 Apache Spark 中以平面列表形式获取单列值

apache-spark - json/文本格式的 Apache Spark DAG 可视化

pyspark - spark join 引发 "Detected cartesian product for INNER join"

scala - 如何使用 Spark 独立集群在工作节点上管理多个执行程序?

apache-spark - WARN SparkContext:正在构造另一个SparkContext(或在其构造函数中引发了异常)