如何从Databricks连接到HDInsight Hadoop群集

时间:2019-12-23 15:33:10

标签: python hadoop databricks hdinsight pyarrow

您能帮我从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, 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_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了。

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

0 个答案:

没有答案