关于将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的工作示例,这将非常有帮助。
非常感谢您的帮助,
1条答案
按热度按时间htrmnn0y1#
dask在yarn上的最简单实现如下所示
安装针织物
conda install knit -c conda-forge
(很快“达斯克纱” Package 将面世,也许是一个更明显的名字)关于如何创建dask集群的最简单示例可以在文档中找到。在这里,您可以创建一个本地conda环境,将其上载到hdfs并让yarn将其分发给workers,这样就不需要sudo访问。
请注意,您可以传递许多参数,因此鼓励您阅读文档中的用法和疑难解答部分。
问题的具体答案
Client('Mynamenode:50070')
-hadoop对dask一无所知,namenode服务器没有理由知道如何处理dask客户机连接No module named lib
-这是非常奇怪的,也许是一个错误,应该自己记录。我鼓励您检查您的客户机和任何worker中是否有hdfs3的兼容版本(最好是最新版本)fails with a security error
-这是相当模糊的,我不能说更多没有进一步的信息。你启用了什么安全tdo,你看到了什么错误?可能您需要使用kerberos进行身份验证,但尚未运行kinit
.