当前位置: 首页 > 知识库问答 >
问题:

在同一JVM中同时运行多个spark实例的最佳实践?

吉和同
2023-03-14
   16/12/06 08:18:40 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and
     have sufficient resources
    16/12/06 08:18:55 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and
     have sufficient resources
    16/12/06 08:18:59 INFO CoarseGrainedSchedulerBackend$DriverEndpoint: Registered executor NettyRpcEndpointRef(null) (172.26.7.195:44690) with ID 52
    16/12/06 08:18:59 INFO TaskSetManager: Starting task 0.0 in stage 0.0 (TID 0, 172.26.7.195, partition 0, ANY, 7307 bytes)
    16/12/06 08:18:59 INFO CoarseGrainedSchedulerBackend$DriverEndpoint: Launching task 0 on executor id: 52 hostname: 172.26.7.195.
    16/12/06 08:19:00 INFO CoarseGrainedSchedulerBackend$DriverEndpoint: Registered executor NettyRpcEndpointRef(null) (172.26.7.192:38343) with ID 53
    16/12/06 08:19:02 WARN TaskSetManager: Lost task 0.0 in stage 0.0 (TID 0, 172.26.7.195): java.io.IOException: org.apache.spark.SparkException: Failed
     to get broadcast_1_piece0 of broadcast_1
            at org.apache.spark.util.Utils$.tryOrIOException(Utils.scala:1260)
            at 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)
            at org.apache.spark.broadcast.TorrentBroadcast.getValue(TorrentBroadcast.scala:89)
            at org.apache.spark.broadcast.Broadcast.value(Broadcast.scala:70)
            at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:67)
            at org.apache.spark.scheduler.Task.run(Task.scala:85)
            at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:274)
            at 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)

我的查询如下:

>

  • 在我的应用程序中,我需要在计划中同时运行多个pyspark应用程序。是否有任何方法可以同时从spark驱动程序运行多个pyspark应用程序,从而创建单独的sparkcontext对象?

    如果第一个查询的答案是否定的,那么我可以运行一个应用程序从驱动程序,另一个从执行程序,但我可以一次运行它。

      null

    配置:VM-1:Hadoop主节点、Spark驱动程序和执行程序、Mongodb VM-2:Hadoop数据节点、Spark执行程序Pyspark应用程序在VM-1中正常的crontab条目中运行

  • 共有1个答案

    平俊茂
    2023-03-14

    我也试图做类似的事情,但得到了块管理器注册错误。我试图从同一个节点启动两个不同的pyspark shell,经过多次搜索后,我意识到可能两个pyspark shell都使用相同的驱动程序JVM,当一个shell占用另一个BlockManager时,另一个shell开始提供异常。

    因此,我决定使用另一种方法,即使用不同的节点来启动驱动程序,并使用

    pyspark --master <spark-master url> --total-executor-cores <num of cores to use>  
    

    现在我不再得到错误。

     类似资料:
    • 问题内容: 我正在尝试创建86个task.py实例以同时运行。 问题答案: 等待命令完成。改为使用:

    • 我实际上正在部署一个Spark/Kafka/Cassandra应用程序,而我正面临一个不同解决方案的问题,所以我在这里听取您的建议。 > 我在Spark streaming中运行了一个很长时间的应用程序,用于处理Kafka中的Avro消息。根据消息的性质,我可以做一些不同的案例,最后在Cassandra中保存一个记录,所以只是这些技术的一个基本用例。 所以我正在寻找执行批处理作业的最佳实践。由于s

    • 不同的来源(例如1和2)声称Spark可以从在同一JVM中运行多个任务中获益。但他们没有解释原因。 这些好处是什么?

    • 问题内容: 我在并行计算集群的不同处理器上将Python 3.6脚本作为多个单独的进程运行。多达35个进程同时运行没有问题,但是第36行(及以后)因第二行()上的分段错误而崩溃。有趣的是,第一行不会引起问题。完整的错误消息是: 熊猫和其他一些软件包已安装在虚拟环境中。我已经复制了虚拟环境,因此每个venv中运行的进程不超过24个。例如,上面的错误脚本来自运行在名为的虚拟环境中的脚本。 不论从特定的

    • 我的应用程序在两个jboss版本jboss 4和jboss 7之间扩展。Jboss 4 intance正在通过eclipse运行。当我尝试通过[Jboss_HOME]/bin/standalone.bat运行Jboss 7时,它不会启动,并显示以下错误。 调用"C:\jboss as-7.1.1。最终\bin\standalone.conf.bat"警告JBOSS_HOME可能指向不同的安装-可能

    • 我正在学习storm。我对Apache storm上一次可以运行的拓扑数有疑问。我在storm集群上提交了两个拓扑,但一次只能运行一个拓扑。我需要杀死或停用已经存在的拓扑才能运行任何新的拓扑。 我用的是Storm0.9.4 动物园管理员3.4.6 我在附上我的暴风UI的截图。