单个虚拟机上的Spark流应用程序,独立模式

时间:2016-03-22 17:26:45

标签: apache-spark spark-streaming

我创建了spark streaming应用程序,当部署模式是客户端时,它运行良好。

在我的虚拟机上,我有主人,只有一名工人。

当我尝试将模式更改为“群集”时,它会失败。在Web UI中,我看到驱动程序正在运行,但应用程序失败。

EDITED

在日志中,我看到以下内容:

  

16/03/23 09:06:25 INFO Master:驱动程序提交了org.apache.spark.deploy.worker.DriverWrapper

     

16/03/23 09:06:25 INFO Master:在worker worker-20160323085541-10.0.2.15-36648上启动驱动程序驱动程序-20160323090625-0001

     

16/03/23 09:06:32 INFO Master:metering.dev.enerbyte.com:37168已取消关联,将其删除。

     

16/03/23 09:06:32 INFO Master:10.0.2.15:59942被解除关联,删除它。

     

16/03/23 09:06:32 INFO Master:metering.dev.enerbyte.com:37166已取消关联,删除它。

     

16/03/23 09:06:46 INFO Master:注册app wibeee-pipeline

     

16/03/23 09:06:46 INFO Master:已注册的app wibeee-pipeline与ID app-20160323090646-0007

     

16/03/23 09:06:46 INFO Master:在worker worker-20160323085541-10.0.2.15-36648上启动执行程序app-20160323090646-0007 / 0

     

16/03/23 09:06:50 INFO Master:收到应用程序app-20160323090646-0007的取消注册请求

     

16/03/23 09:06:50 INFO Master:删除app app-20160323090646-0007

     

16/03/23 09:06:50 WARN Master:获得未知执行者app-20160323090646-0007 / 0的状态更新

     

16/03/23 09:06:50 INFO Master:metering.dev.enerbyte.com:37172已取消关联,将其删除。

     

16/03/23 09:06:50 INFO Master:10.0.2.15:45079被取消关联,将其删除。

     

16/03/23 09:06:51 INFO Master:删除驱动程序:driver-20160323090625-0001

所以会发生什么是master在worker上启动驱动程序,应用程序被注册,然后尝试在同一个worker上启动执行,但是失败了(虽然我只有一个worker!)

修改 问题可能与我使用检查点的事实有关,因为我的代码中有“updateStateByKey”转换。它设置为“/ tmp”,但我总是收到警告“当在集群模式下运行时,”/ tmp“需要更改。我应该如何设置它?

这可能是我遇到问题的原因吗?

谢谢

1 个答案:

答案 0 :(得分:0)

根据您提供的日志,它可能不是因为属性文件而是检查此。

spark-submit仅在群集模式下运行时将jar文件复制到驱动程序,因此如果您的应用程序尝试读取运行spark-submit的系统中保存的属性文件,则驱动程序在运行时无法找到它集群模式。

从属性文件读取工作在客户端模式下,因为驱动程序在执行spark-submit的同一台机器上启动。

您可以将属性复制到所有节点中的同一目录,或者将属性文件保存在cassandra文件系统中并从那里读取。