我试图从Driver机器一次启动单独的pyspark应用程序 . 因此两个应用程序都在同一个JVM中运行 . 虽然它正在创建单独的spark上下文对象,但其中一个作业失败说无法获得broadcast_1 .
16/12/06 08:18:40 WARN TaskSchedulerImpl:初始工作没有接受任何资源;检查您的集群UI以确保工作人员已注册并具有足够的资源16/12/06 08:18:55 WARN TaskSchedulerImpl:初始作业未接受任何资源;检查您的集群UI以确保工作人员已注册并具有足够的资源16/12/06 08:18:59 INFO CoarseGrainedSchedulerBackend $ DriverEndpoint:已注册执行人NettyRpcEndpointRef(null)(172.26.7.195:44690),ID为52 16/12/06 08:18:59 INFO TaskSetManager:在阶段0.0中启动任务0.0(TID 0,172.26.7.195,分区0,ANY,7307字节)16/12/06 08:18:59 INFO CoarseGrainedSchedulerBackend $ DriverEndpoint:在执行程序上启动任务0 id:52主机名:172.26.7.195 . 16/12/06 08:19:00 INFO CoarseGrainedSchedulerBackend $ DriverEndpoint:已注册执行人NettyRpcEndpointRef(null)(172.26.7.192:38343)ID 53 16/12/06 08:19:02 WARN TaskSetManager:0.0阶段丢失任务0.0 (TID 0,172.26.7.195):java.io.IOException:org.apache.spark.SparkException:无法在org.apache.spark.util.Utils $ .tryOrIOException(Utils.scala:1260)获取broadcast_1的broadcast_1_piece0 org.apache.spark.broadcast.TorrentBroadcast.readBroadcastBlock(TorrentBroadcast.scala:174)at org.apache.spark.broadcast.TorrentBroadcast._value $ lzycompute(TorrentBroadcast.scala:65)at org.apache.spark.broadcast.TorrentBroadcast . _value(TorrentBroadcast.scala:65)org.apache.spark.broadcast.TorrentBroadcast.getValue(TorrentBroadcast.scala:89)org.apache.spark.broadcast.Broadcast.value(Broadcast.scala:70)at org.apache .spark.scheduler.ResultTask.runTask(ResultTask.scala:67)atg.apache.spark.scheduler.Task.run(Task.scala:85)at org.apache.spark.executor.Executor $ TaskRunner.run(Ex ecutor.scala:274)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run (Thread.java:745)
我搜索了很多google,甚至在stackoverflow中,发现不建议在同一个JVM中运行多个spark上下文对象,并且根本不支持python .
我的疑问是:
在我的应用程序中,我需要在计划中同时运行多个pyspark应用程序 . 有没有办法从火花驱动程序运行多个pyspark应用程序,这将创建单独的sparkcontext对象?
如果第一个查询答案为NO,那么我可以运行一个来自驱动程序的应用程序,另一个来自执行程序,但我可以一次运行它 .
最后,对于在同一个火花集群中运行的并行火花应用的配置或最佳实践,还有其他更好的建议 .
我的设置:
Hadoop版本:hadoop-2.7.1
Spark:2.0.0
Python:python 3.4
Mongodb 3.2.10
配置:VM-1:Hadoop主节点,Spark驱动程序和执行程序,Mongodb VM-2:Hadoop数据节点,Spark Executor Pyspark应用程序在VM-1中的正常crontab条目中运行