我正在尝试在jupyter-notebook (v4.2.2)上远程使用spark cluster (v2.0),但是当我运行以下命令时,它不能在spark上运行,而只能在本地运行:

PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS="notebook --no-browser --port=7777" pyspark --master spark://**spark_master_hostname**:7077

当我使用相同的pyspark单独运行--master argument时,该过程会在"Running Applications"中显示出来,以用于 Spark 群集。
pyspark --master spark://**spark_master_hostname**:7077

几乎好像pyspark没有在前者中运行。第一个命令阻止jupyter在spark集群上运行是否存在问题,或者是在spark集群上运行笔记本的更好方法?

最佳答案

看来您要加载IPython Shell,而不是IPython Notebook,并通过命令行使用PySpark?

IMO Jupiter UI是使用笔记本电脑的更便捷方式。

您可以运行jupyter服务器:

jupyter notebook

然后(使用jupyter UI)启动新的Python2内核。在打开的笔记本中,创建SparkContext,配置指向您的Spark集群:
from pyspark import SparkContext, SparkConf
conf = SparkConf()
conf.setMaster('spark://**spark_master_hostname**:7077')
conf.setAppName('some-app-name')
sc = SparkContext(conf=conf)

现在,您已经在spark集群上启动了pyspark应用程序,并且可以通过创建的SparkContext与它进行交互。即:
def mod(x):
    import numpy as np
    return (x, np.mod(x, 2))
rdd = sc.parallelize(range(1000)).map(mod).take(10)
print rdd

上面的代码将被远程计算。

07-25 23:55
查看更多