我们正在尝试dask_yarn 0.3.0版本(dask 0.18.2( 由于我运行的 boost-cpp 与 0.10.0
版本pyarrow
冲突,我们正在尝试从 hdfs 读取 csv 文件 - 但是我们在运行dd.read_csv('hdfs:///path/to/file.csv')
时出现错误,因为它正在尝试使用 hdfs3。
导入错误:找不到共享库:libhdfs3.so
从文档中似乎有一个选项 使用pyarrow.
这样做的正确语法/配置是什么?
尝试使用locate -l 1 libhdfs.so
查找文件。就我而言,该文件位于/opt/mapr/hadoop/hadoop-0.20.2/c++/Linux-amd64-64/lib
.
然后,使用环境变量ARROW_LIBHDFS_DIR
此路径重新启动 Jupyter 服务器。就我而言,我的命令如下所示:
ARROW_LIBHDFS_DIR=/opt/mapr/hadoop/hadoop-0.20.2/c++/Linux-amd64-64/lib jupyter lab --port 2250 --no-browser
接下来,在创建 Yarn 集群时,将此变量作为工作器参数传递:
# Create a cluster where each worker has two cores and eight GiB of memory
cluster = YarnCluster(
worker_env={
# See https://github.com/dask/dask-yarn/pull/30#issuecomment-434001858
'ARROW_LIBHDFS_DIR': '/opt/mapr/hadoop/hadoop-0.20.2/c++/Linux-amd64-64/lib',
},
)
这为我解决了问题。
(灵感来自 https://gist.github.com/priancho/357022fbe63fae8b097a563e43dd885b(