如何使用dask在yarn上运行并行python作业?

rekjcdws  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(607)

关于将dask与hadoop/yarn结合使用,我有几个问题。
1)如何将dask连接到hadoop/yarn并并行化作业?
当我尝试使用:

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

它会导致错误:
commclosederror:in:流已关闭:正在尝试调用远程方法“identity”
我应该传递名称节点还是数据节点的地址?我可以转介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,并尝试使用以下示例启动Yarn容器:
http://knit.readthedocs.io/en/latest/examples.html#ipython-平行
此操作失败并出现安全错误。
我没有 sudo 访问集群,所以在集群中的每个节点上安装任何包都是不可能的,我只能通过 conda 以及 pip 在我的下面 userid .
最后,如果有人能在yarn上发布dask的工作示例,这将非常有帮助。
非常感谢您的帮助,

htrmnn0y

htrmnn0y1#

dask在yarn上的最简单实现如下所示
安装针织物 conda install knit -c conda-forge (很快“达斯克纱” Package 将面世,也许是一个更明显的名字)
关于如何创建dask集群的最简单示例可以在文档中找到。在这里,您可以创建一个本地conda环境,将其上载到hdfs并让yarn将其分发给workers,这样就不需要sudo访问。
请注意,您可以传递许多参数,因此鼓励您阅读文档中的用法和疑难解答部分。
问题的具体答案

  1. Client('Mynamenode:50070') -hadoop对dask一无所知,namenode服务器没有理由知道如何处理dask客户机连接
  2. No module named lib -这是非常奇怪的,也许是一个错误,应该自己记录。我鼓励您检查您的客户机和任何worker中是否有hdfs3的兼容版本(最好是最新版本)
  3. fails with a security error -这是相当模糊的,我不能说更多没有进一步的信息。你启用了什么安全tdo,你看到了什么错误?可能您需要使用kerberos进行身份验证,但尚未运行 kinit .

相关问题