2

我有几个关于将 Dask 与 Hadoop/Yarn 一起使用的问题。


1 )如何将 Dask 连接到 Hadoop/YARN 并并行化作业?
当我尝试使用:

from dask.distributed import Client
client = Client('Mynamenode:50070') 

它导致错误:

CommClosedError:在:流已关闭:尝试调用远程方法“身份”时

我应该传递名称节点还是数据节点的地址?我可以推荐 Zookeeper 吗?


2 )如何使用 Dask 和 HDFS3 从 HDFS 读取数据?
当我尝试使用以下方式读取文件时:

import dask.dataframe as dd
import distributed.hdfs
df = dd.read_csv('hdfs:///user/uname/dataset/temps.csv')

它导致以下错误:

ImportError:没有名为 lib 的模块

我已尝试卸载并重新安装 hdfs3,但错误仍然存​​在。

我已经安装了knit并尝试使用以下示例启动纱线容器:

http://knit.readthedocs.io/en/latest/examples.html#ipython-parallel

这失败并出现安全错误。

我没有访问集群的权限,因此在集群中的每个节点上安装任何包都是不可能的,sudo我唯一能做的安装是通过我的.condapipuserid


最后,如果有人可以在 Yarn 上发布 Dask 的工作示例,那将非常有帮助。

非常感谢任何帮助,

4

1 回答 1

0

dask-on-yarn 的最简单实现如下所示

  • 安装 knit with conda install knit -c conda-forge(很快“dask-yarn”包将可用,也许是一个更明显的名称)

可以在文档中找到有关如何创建 dask 集群的最简单示例。在这里,您创建一个本地 conda 环境,将其上传到 HDFS 并让 YARN 将其分发给工作人员,因此您不需要 sudo 访问权限。

请注意,您可以传递很多参数,因此鼓励您阅读文档的使用和故障排除部分。

问题的具体答案

1) Client('Mynamenode:50070')- hadoop对dask一无所知,namenode服务器没有理由知道如何处理dask客户端连接

2) No module named lib- 这很奇怪,可能是一个应该自己记录的错误。我鼓励您检查客户端和任何工作人员中是否有兼容的 hdfs3 版本(最好是最新版本)

3) fails with a security error- 这相当模糊,如果没有更多信息,我不能说更多。您启用了哪些安全措施,您看到了什么错误?可能是您需要使用 kerberos 进行身份验证但尚未运行kinit

于 2017-10-29T18:51:15.873 回答