我已经实现了一个功能齐全的 Spark 2.1.1 独立集群,我在其中使用 Apache Livycurl
0.4通过命令发布作业批次。在咨询 Spark WEB UI 时,我看到了我的工作及其应用程序 ID(类似于:)app-20170803115145-0100
,以及应用程序名称、核心、时间、状态等。但是在咨询 Livy WEB UI 时(http://localhost:8998 by默认),我看到以下结构:
| 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 中的任何内容。文件。