2017-08-23 81 views
0

在我们的HDFS集群的其中一个边缘节点上设置钻取后,我无法读取任何hdfs文件。我可以查询从本地文件中的数据(只要它们是具有777级权限的文件夹中),但是从HDFS查询数据失败,出现以下错误:Apache Drill无法读取HDFS文件(资源错误:无法创建模式树)

Error: RESOURCE ERROR: Failed to create schema tree.

[Error Id: d9f7908c-6c3b-49c0-a11e-71c004d27f46 on server-name:31010] (state=,code=0)

查询:

0: jdbc:drill:zk=local> select * from hdfs.`/names/city.parquet` limit 2; 

从查询本地文件工作正常:

0: jdbc:drill:zk=local> select * from dfs.`/tmp/city.parquet` limit 2; 

我的HDFS设置类似于DFS的设置,除了连接URL是服务器地址,而不是文件:///

我无法在网上找到关于此钻取错误的任何内容。

+0

您是否在drillbit日志中看到任何信息?您可以使用$ DRILL_CONF/logback.xml启用DEBUG级别日志记录。你也有模拟和身份验证启用?请包括您的drill-override.conf和存储插件定义。 – InfamousCoconut

回答

1

“..on边缘节点..之一”

钻位是为了Hadoop集群的数据节点上,以及不仅对边缘节点上运行。这将有助于数据局部性。

现在,看到您看到的错误,看起来您的一个钻头可能已关闭,或者您的工头节点(您连接的那个)无法连接到其他节点。

如果您可以提供更多信息,例如您的群集中有多少个钻头,它将会有所帮助。

一个很好的出发点应该是,检查:

select * from sys.drillbits; 

这会告诉你哪些节点上/下。

+0

我正在嵌入式模式下运行钻取,因此我只将它安装在其中一个节点上。 运行该查询也会返回相同的错误: 错误:资源错误:无法创建模式树。 – user171943