代码之家  ›  专栏  ›  技术社区  ›  vva

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

  •  2
  • vva  · 技术社区  · 7 年前


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

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

    CommClosedError:in:Stream已关闭:尝试调用远程方法“identity”时

    我应该传递名称节点或数据节点的地址吗?我可以转介动物园管理员吗?


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

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

    它会导致以下错误:

    导入错误:没有名为lib的模块

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

    我已安装

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

    此操作失败,并出现安全错误。

    我没有 sudo 访问集群,因此在集群中的每个节点上安装任何软件包都是不可能的,我只能通过 conda pip 在我的 userid .


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

    1 回复  |  直到 7 年前
        1
  •  0
  •   mdurant    7 年前

    dask在纱线上的最简单实现如下所示

    • 使用安装knit conda install knit -c conda-forge (很快,“dask纱线”包装将面世,可能是一个更明显的名称)

    有关如何创建dask集群的最简单示例,请参见 the documentation . 在这里,您创建了一个本地conda环境,将其上传到HDFS,并让YARN将其分发给工作人员,因此您不需要sudo访问。

    请注意,您可以传递许多参数,因此我们鼓励您阅读文档中的用法和疑难解答部分。

    问题的具体答案

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

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

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