我正在尝试使用Matthew Rocklin提出的名为dask-spark的项目。
在将dask-spark添加到我的项目中时,我遇到了一个问题:等待工人,如下图所示。
在这里,我以dask-worker tcp://ubuntu8:8786和tcp://ubuntu9:8786运行两个worker节点(dask),并以worker-20180918112328-ubuntu8-45764和worker-20180918112413-ubuntu9-41972在独立模型上运行两个worker节点(spark
我的python代码是这样的:
from tpot import TPOTClassifier
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.externals import joblib
from dask.distributed import Client
import distributed.joblib
from sklearn.externals.joblib import parallel_backend
from dask_spark import spark_to_dask
from pyspark import SparkConf, SparkContext
from dask_spark import dask_to_spark
if __name__ == '__main__':
sc = SparkContext()
#connect to the cluster
client = spark_to_dask(sc)
digits = load_digits()
X_train, X_test, y_train, y_test = train_test_split(
digits.data,
digits.target,
train_size=0.75,
test_size=0.25,
)
tpot = TPOTClassifier(
generations=2,
population_size=10,
cv=2,
n_jobs=-1,
random_state=0,
verbosity=0
)
with joblib.parallel_backend('dask.distributed', scheduler_host=' ubuntu8:8786'):
tpot.fit(X_train, y_train)
print(tpot.score(X_test, y_test))如果你能帮我解决这个问题,我将不胜感激。
发布于 2018-09-25 17:30:59
我已经修改了core.py中的程序,如下所示:
def spark_to_dask(sc, loop=None):
""" Launch a Dask cluster from a Spark Context
"""
cluster = LocalCluster(n_workers=None, loop=loop, threads_per_worker=None)
rdd = sc.parallelize(range(1000))
address = cluster.scheduler.address之后,在Spark上使用Standalone或Mesos成功运行了我的测试用例。
发布于 2018-09-20 20:43:32
正如该项目的自述文件中所指出的,dask-spark还不成熟。这是一个周末项目,我不推荐使用它。
相反,我建议使用这里描述的一种机制直接启动Dask:http://dask.pydata.org/en/latest/setup.html
如果你必须使用Mesos,那么我不确定我会有多大的帮助,但有一个运行在马拉松之上的包daskathon可能会让你感兴趣。
https://stackoverflow.com/questions/52416852
复制相似问题