【发布时间】:2016-03-30 14:02:56
【问题描述】:
我在三个 VM 上使用 Spark 1.6.0,1x Master(独立),2x worker w/8G RAM,每个 2CPU。
我正在使用下面的内核配置:
{
"display_name": "PySpark ",
"language": "python3",
"argv": [
"/usr/bin/python3",
"-m",
"IPython.kernel",
"-f",
"{connection_file}"
],
"env": {
"SPARK_HOME": "<mypath>/spark-1.6.0",
"PYTHONSTARTUP": "<mypath>/spark-1.6.0/python/pyspark/shell.py",
"PYSPARK_SUBMIT_ARGS": "--master spark://<mymaster>:7077 --conf spark.executor.memory=2G pyspark-shell --driver-class-path /opt/vertica/java/lib/vertica-jdbc.jar"
}
}
目前,这有效。我可以使用 spark context sc & sqlContext 而无需导入,就像在 pyspark shell 中一样。
当我使用多个笔记本时出现问题: 在我的 spark master 上,我看到两个“pyspark-shell”应用程序,这有点道理,但一次只能运行一个。但是在这里,“运行”并不意味着执行任何东西,即使我没有在笔记本上运行任何东西,这也会显示为“正在运行”。鉴于此,我无法在笔记本之间共享我的资源,这非常可悲(我目前必须杀死第一个外壳(=笔记本内核)才能运行第二个)。
如果您对如何操作有任何想法,请告诉我! 另外,我不确定我使用内核的方式是否是“最佳实践”,我已经在设置 spark 和 jupyter 以协同工作时遇到了麻烦。
谢谢大家
【问题讨论】:
-
@AlbertoBonsanto 这将如何解决并发问题? :)
-
@eliasah 这肯定不会。还是很高兴得到一些建议:p
-
你想分享 sparkcontext 吗?
-
这不是目标,但也不是问题
-
如果您要为每个笔记本创建上下文,则需要 Mesos 或 chronos 之类的东西。堆栈会突然变得非常复杂。
标签: apache-spark pyspark jupyter