在我们的 HDFS 集群的一个边缘节点上设置 drill 后,我无法读取任何 hdfs 文件。我可以从本地文件查询数据(只要它们位于具有 777 权限的文件夹中)但是从 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 是服务器地址而不是 file:///
我在网上找不到任何关于此错误的信息。
最佳答案
“..在边缘节点之一上..”
Drill-bits 也可以在 Hadoop 集群的数据节点上运行,而不仅仅是在边缘节点上。这将有助于数据本地化。
现在,针对您所看到的错误,看起来您的一个钻头可能已关闭或您的工头节点(您所连接的节点)在连接到其他节点时遇到问题。
如果您能提供更多信息(例如您的集群中有多少个钻头),这将进一步提供帮助。
一个好的起点应该是检查:
select * from sys.drillbits;
这将告诉您哪些节点处于启动/关闭状态。
关于hadoop - Apache Drill 无法从 HDFS 读取文件(资源错误 : Failed to create schema tree),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45844916/