你能帮我从databricks笔记本找到与hdinsight hadoop集群(首先是hdfs)交互的正确方法吗?
现在我尝试使用pyarrow库,如下所示: hdfs1 = pa.hdfs.connect(host=host, port=8020, extra_conf=conf, driver='libhdfs3')
其中host是我的namenode;
conf是dict,从hdfs\u client hdfs-site.xml创建
我收到一条错误消息:
ArrowIOError: HDFS connection failed
---------------------------------------------------------------------------
ArrowIOError Traceback (most recent call last)
<command-3476367505086664> in <module>
1 hdfs1 = pa.hdfs.connect(host=host, port=8020,
----> 2 extra_conf=conf, driver='libhdfs3')
/databricks/python/lib/python3.7/site-packages/pyarrow/hdfs.py in connect(host, port, user, kerb_ticket, driver, extra_conf)
209 fs = HadoopFileSystem(host=host, port=port, user=user,
210 kerb_ticket=kerb_ticket, driver=driver,
--> 211 extra_conf=extra_conf)
212 return fs
/databricks/python/lib/python3.7/site-packages/pyarrow/hdfs.py in __init__(self, host, port, user, kerb_ticket, driver, extra_conf)
36 _maybe_set_hadoop_classpath()
37
---> 38 self._connect(host, port, user, kerb_ticket, driver, extra_conf)
39
40 def __reduce__(self):
/databricks/python/lib/python3.7/site-packages/pyarrow/io-hdfs.pxi in pyarrow.lib.HadoopFileSystem._connect()
/databricks/python/lib/python3.7/site-packages/pyarrow/error.pxi in pyarrow.lib.check_status()
ArrowIOError: HDFS connection failed
而且我也不太清楚文件中的环境变量:
hadoop\u home:安装的hadoop发行版的根目录。通常有lib/native/libhdfs.so.-我的hadoop应该在hdinsights集群上,但是libhdfs.so我已经和pyarrow一起安装在我的databricks上了。
我已经从ssh访问了我的hdfs,在/usr/hdp/current/hadoop client/lib/native/目录中,我只找到了libhdfs.a,但没有找到libhdfs.so。
从ssh client echo$hadoop\u home和pyarrow所需的其他env变量,不返回任何内容。
目前我有强烈的意见,我做了一些概念上的错误。。。使用pyarrow,看起来python脚本应该在安装hadoop集群的同一操作系统和环境中执行。但是当我使用databricks时,它们是防御上不同的集群、不同的操作系统和环境,更不用说windows下的jupyter实验室了。
如果你能帮我找到正确的路,我会很高兴的
暂无答案!
目前还没有任何答案,快来回答吧!