在我们的HDFS集群的一个边缘节点上设置钻取后,我无法读取任何hdfs文件。我可以从本地文件中查询数据(只要它们位于具有777权限的文件夹中),但是从hdfs查询数据失败,并出现以下错误:
错误:RESOURCE 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:///
我无法在网上找到有关此错误的任何内容。
答案 0 :(得分:1)
" ..在其中一个边缘节点上.."
钻取位也可以在Hadoop集群的数据节点上运行,而不仅仅是在边缘节点上运行。这将有助于数据本地化。
现在,遇到您所看到的错误,看起来您的某个钻头可能已关闭或您的工头节点(您连接的那个)无法连接到其他节点。
如果您可以提供有关群集中钻头数量的更多信息,那将会更有帮助。
一个好的起点应该是,检查:
select * from sys.drillbits;
这将告诉您哪些节点已启用/关闭。
答案 1 :(得分:0)
在Apache Drill的 conf 目录中,您需要将以下行添加到drill-override.conf文件中
drill.exec: {
cluster-id: "drillbits1",
zk.connect: "localhost:2181",
sys.store.provider.local.path="/mypath"
}
代替" / mypath"您需要提供系统的路径,其中钻取将保存存储插件。