Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 为什么Apache Livy会话显示应用程序id为空?_Apache Spark_Apache Spark 2.0_Apache Spark Standalone_Livy - Fatal编程技术网

Apache spark 为什么Apache Livy会话显示应用程序id为空?

Apache spark 为什么Apache Livy会话显示应用程序id为空?,apache-spark,apache-spark-2.0,apache-spark-standalone,livy,Apache Spark,Apache Spark 2.0,Apache Spark Standalone,Livy,我已经实现了一个功能齐全的Spark 2.1.1独立集群,其中我使用ApacheLivy0.4通过curl命令发布作业批。咨询Spark WEB UI时,我会看到我的作业及其应用程序id(如下所示:app-20170803115145-0100),以及应用程序名称、核心、时间、状态等。但咨询Livy WEB UI时(默认情况下),我会看到以下结构: | Batch Id | Application Id | State | | -------- | -------------- | ----

我已经实现了一个功能齐全的Spark 2.1.1独立集群,其中我使用ApacheLivy0.4通过
curl
命令发布作业批。咨询Spark WEB UI时,我会看到我的作业及其应用程序id(如下所示:
app-20170803115145-0100
),以及应用程序名称、核心、时间、状态等。但咨询Livy WEB UI时(默认情况下),我会看到以下结构:

| 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字段中看到空值,还有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
如果您需要更多信息,请告诉我。


更新 对于那些有同样问题的人。
不幸的是,使用独立群集管理器无法修复问题,但后来我有必要将其更改为纱线,以更好地管理池和队列,这神奇地解决了问题,我能够看到所有这些信息。我不知道为什么独立管理器不能将applicationId推送到Livy,但是Thread可以,所以它只是自己修复的,我也没有更改Livy配置文件中的任何内容。

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

也许这是一个livy bug,从设计角度来看,它也应该在本地模式下获得。
将来可能只在Thread模式下才使用它。

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