在使用Presto查询时遇到错误

143次阅读
没有评论

问题描述

在使用Presto查询时遇到了以下错误:

com.facebook.presto.spi.PrestoException: cannot create caching file system
...
Caused by: java.io.IOException: No FileSystem for scheme: abfs

用户使用的Presto版本是prestodb:0.234,并且依赖的JAR包如下:

azure-storage-2.0.0.jar
hadoop-azure-3.2.1.jar
hadoop-azure-datalake-3.2.1.jar
azure-data-lake-store-sdk-2.3.8.jar

用户希望得到解决方案的建议。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1:检查依赖的JAR包

根据用户提供的信息,可能有两个原因导致这个错误。首先,检查您的依赖项中是否有正确的org.apache.hadoop.fs.FileSystem的JAR包。有时候,当使用maven-assembly-plugin时,它会将所有的JAR包合并成一个,而META-INFO/services/org.apache.hadoop.fs.FileSystem文件会被覆盖,只有最后一个添加的文件会保留。这可能导致DistributedFileSystem没有被声明。因此,请检查您的依赖项,并确保在您的分发中有正确的JAR包。

方案2:咨询Presto社区

其次,根据已知问题#11648,PrestoDB使用过时的azure-site.xmlABFSADLSALDS gen2只被引入到https://github.com/prestosql/presto,而不是prestodb。因此,建议您在Presto社区的Slack上提问,以获取更多帮助和解决方案。

P.S. 尝试使用storediag

在Azure的hadoop手册中,有一个关于ABFS的章节。其中提到了一个有用的工具cloudstore storediag utility,它可以用于调试连接性问题。它可以验证类路径、设置,并尝试与文件系统进行交互。您可以尝试使用这个工具来帮助诊断和解决问题。

希望以上解决方案对您有帮助。如果您有任何其他问题,请随时提问。

正文完