如何从Databricks连接到HDInsight Hadoop群集

您能帮我从Databricks笔记本中找到与HDInsight Hadoop集群(首先与HDFS进行交互)的正确方法吗?

现在我正尝试使用pyarrow库,如下所示:

hdfs1 = pa.hdfs.connect(host=host,port=8020,extra_conf=conf,driver='libhdfs3')

其中主机是我的名称节点;

conf是由HDFS_CLIENT hdfs-site.xml创建的dict

我收到一条错误消息:

ArrowIOError: HDFS connection failed
---------------------------------------------------------------------------
ArrowIOError                              Traceback (most recent call last)
<command-3476367505086664> in <module>
      1 hdfs1 = pa.hdfs.connect(host=host,----> 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,extra_conf)
     36             _maybe_set_hadoop_classpath()
     37 
---> 38         self._connect(host,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_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客户端回显$ HADOOP_HOME和pyarrow所需的其他env变量,不会返回任何内容。

就目前而言,我有强烈的观点认为我在做概念上错误的事情……使用pyarrow似乎应该在安装了Hadoop集群的同一OS和环境中执行python脚本。但是,当我使用Databricks时-这些无疑是不同的群集,不同的操作系统和环境,更不用说Windows下的Jupyter Lab了。

如果您能帮助我找到正确的方法,将会很高兴

cxlovexby 回答:如何从Databricks连接到HDInsight Hadoop群集

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2871886.html

大家都在问