Apache Drill 读取 Parquet

Apache Drill reading Parquet

我正在尝试在 10 分钟教程中完成 Apache Drill,但我卡在了阅读 parquet 部分。读取 CSV 没问题,但是当我尝试使用教程中的确切格式读取示例 parquet 文件时,出现错误。我正在正确调整路径。

SELECT * FROM dfs.`/path/to/drill/sample-data/nation.parquet`;

输出:

Error: SYSTEM ERROR: UnsatisfiedLinkError: /tmp/snappy-1.1.7-67ad3418-1ee8-4c7a-88eb-7faf132ce52a-libsnappyjava.so: /tmp/snappy-1.1.7-67ad3418-1ee8-4c7a-88eb-7faf132ce52a-libsnappyjava.so: failed to map segment from shared object: Operation not permitted

Fragment 0:0

Please, refer to logs for more information.

[Error Id: b62d40f7-e8fb-4f78-a93a-8359033b216f on <host-id:port-id>] (state=,code=0)

如果我运行它随后的时间,错误改变:

Error: SYSTEM ERROR: NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy

Fragment 0:0

Please, refer to logs for more information.

[Error Id: bfc38c87-30f2-455c-be15-d6b3aac2943d on <host-id:port-id>] (state=,code=0)

我知道该错误与 Snappy 压缩有关,因为如果我创建自己的未压缩镶木地板文件,它们将被完美读取。 Snappy 文件的 UUID 部分是随机的,并且会随着每次迭代而变化。

如何安装 Snappy,或提供 snappy-java.jar,以便 Drill 使用它? /tmp/ 文件夹设置有问题吗?

https://drill.apache.org/docs/drill-in-10-minutes/

看起来这不是与 Drill 相关的问题。看起来 /tmp 是 noexec 或者这个目录有另一个权限问题。