使用hdfs和checkpoints在mesos上以群集模式运行spark流应用程序。
版本 Mesos 1.2.0 火花2.0.1 hdfs 2.7
申请来源: 存储在hdfs上的application.jar,checkpoints和spark二进制文件。
使用以下配置启动应用程序:
首次启动(无检查点数据):正常工作
第二次启动(带检查点数据):无法正常工作
java.lang.RuntimeException: Stream '/jars/application.jar' was not found.
at org.apache.spark.network.client.TransportResponseHandler.handle(TransportResponseHandler.java:222)
...
发生此错误是因为负责将应用程序jar暴露给执行程序的驱动程序正在尝试将其从检查点存储的jar路径中暴露出来(从hdfs加载并存储在mesos workdir path = sandbox中)存在于当前节点中。
Downloading resource with Hadoop client from 'hdfs://*hdfsHost*/application.jar' to '/var/lib/mesos/slaves/<ID>/frameworks/<frameworkID>/executors/<driverID>/runs/<runID>/application.jar'
...
INFO SparkContext: Added JAR file:/var/lib/mesos/slaves/<checkpointedID>/frameworks/<checkpointedFrameworkID>/executors/<checkpointedDriverID>/runs/<runID>/spark/../application.jar at spark://<driverHost>/jars/application.jar with timestamp 1498051933921
我对这种行为感到困惑。