Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark独立模式多shell会话(应用程序)_Apache Spark - Fatal编程技术网

Apache spark Spark独立模式多shell会话(应用程序)

Apache spark Spark独立模式多shell会话(应用程序),apache-spark,Apache Spark,在具有多个工作节点的Spark 1.0.0独立模式下,我尝试从两台不同的计算机(同一个Linux用户)运行Spark shell 在文档中,它说“默认情况下,提交到独立模式集群的应用程序将按FIFO(先进先出)顺序运行,每个应用程序将尝试使用所有可用节点。” 每个工作进程的内核数设置为4,8个可用(通过SPARK_JAVA_OPTS=“-Dspark.cores.max=4”)。内存也受到限制,因此应该有足够的内存可供这两种应用程序使用 但是,当查看Spark Master WebUI时,稍后启

在具有多个工作节点的Spark 1.0.0独立模式下,我尝试从两台不同的计算机(同一个Linux用户)运行Spark shell

在文档中,它说“默认情况下,提交到独立模式集群的应用程序将按FIFO(先进先出)顺序运行,每个应用程序将尝试使用所有可用节点。”

每个工作进程的内核数设置为4,8个可用(通过SPARK_JAVA_OPTS=“-Dspark.cores.max=4”)。内存也受到限制,因此应该有足够的内存可供这两种应用程序使用

但是,当查看Spark Master WebUI时,稍后启动的shell应用程序将始终处于“等待”状态,直到第一个应用程序退出。分配给它的内核数为0,每个节点的内存为10G(与已运行的相同)


有没有一种方法可以在不使用Mesos的情况下同时运行两个shell?

当shell死亡时,应用程序结束。因此,您不能在两台笔记本电脑上同时运行两个
spark shell
s。您可以做的是启动一个
火花壳
,启动另一个,然后在第一个火花壳死亡时启动第二个火花壳

与火花壳相反,火花壳在计算结束后会终止。因此,您可以
spark提交一个应用程序,启动
spark shell
,并在应用程序完成时让shell接管


或者,您可以连续运行两个应用程序(一个接一个),同时启动两次
spark submit

解决方法之一是使用
执行器内核总数限制每个spark外壳的内核数。例如,要将其限制为16核,请按如下方式启动:

bin/spark-shell --total-executor-cores 16 --master spark://$MASTER:7077
在这种情况下,每个shell将只使用16个内核,因此您可以在32个内核的集群上运行两个shell。然后,它们可以同时运行,但每次使用的核数不得超过16个。
:(


我知道,这个解决方案远非理想。当用户不运行代码时,您依赖用户限制自己,关闭外壳,资源就会浪费。我已经创建了,您可以投票支持。

在spark独立群集上开始处理外壳之前,必须有足够的内核和内存。您必须指定y从每个spark shell中选择所需的内核数,否则它将全部使用。如果指定5个内核,执行器内存=10G(为执行器分配的内存量),第二个spark shell将使用2个内核和10G内存运行,第二个仍不会启动,因为第一个shell同时使用两个执行器,并且正在使用两个执行器上的所有内存。如果为每个spark shell指定5G执行器内存,则它们可以同时运行


基本上,您希望在一个独立的群集上运行多个作业——不幸的是,它的设计并不能很好地处理这种情况。如果您想这样做,您应该使用mesos或Thread。

不幸的是,不是。我真的不需要它,我会很舒服。如果您不需要充分利用群集,只需要首先,您可以复制Spark文件夹并更改设置中的端口以运行它两次。