java 启动多个jvm实例_在同一个jvm中一次运行多个spark实例的最佳实践?

博客讨论了尝试在同一JVM中启动多个独立的pyspark应用程序导致的问题,特别是广播变量冲突。Spark的警告和错误表明任务无法获取资源。作者了解到这不被官方支持,并寻求在Spark集群中并行运行多个pyspark应用的方法,可能是通过不同的进程或执行器。博客询问了最佳实践,提到了当前的Hadoop、Spark、Python和MongoDB版本配置。
摘要由CSDN通过智能技术生成

我试图从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条目中运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值