我正在尝试基于 JPAM 1.1 配置 PLAIN 身份验证,并且因为在 x 次检查我的语法和设置后它不起作用,所以我发疯了。当我仅使用 cluster-id 和 zk-connect 开始钻取时,它可以工作,但是使用 PLAIN 身份验证的两个选项都会失败。因为我从 pam4j 开始,后来又尝试了 JPAM,所以我为这篇文章保留了 JPAM。一般来说,我没有任何偏好。我只是想完成它。我在 CentOS 上以嵌入式模式运行 Drill。
由于官方文档,我已经做了任何需要的事情:
export DRILLBIT_JAVA_OPTS="-Djava.library.path=/opt/pamfile/"
drill.exec: {
cluster-id: "drillbits1",
zk.connect: "local",
impersonation: {
enabled: true,
max_chained_user_hops: 3
},
security: {
auth.mechanisms: ["PLAIN"],
},
security.user.auth: {
enabled: true,
packages += "org.apache.drill.exec.rpc.user.security",
impl: "pam",
pam_profiles: [ "sudo", "login" ]
}
}
它引发后续错误:
Error: Failure in starting embedded Drillbit: org.apache.drill.exec.exception.DrillbitStartupException: Problem in finding the native library of JPAM (Pluggable Authenticator Module API). Make sure to set Drillbit JVM option 'java.library.path' to point to the directory where the native JPAM exists.:no jpam in java.library.path (state=,code=0)
我已经手动运行了 *.sh 文件以确保导出了必要的路径,因为我不知道 Drill 是否期望这样。 libjpam 的路径应该是已知的。我已经用 sudo 等启动了 Sqlline。没有机会。文档没有帮助。我不明白为什么它如此糟糕而且 imo 不完整。遗憾的是,关于如何详细解决或配置基本用户身份验证的解释为 0。
还是我必须做一些没有被告知但预期的事情?有没有 Apache Drill 本身没有提到的关于 PLAIN 身份验证的先决条件?
最佳答案
尝试改变:export DRILLBIT_JAVA_OPTS="-Djava.library.path=/opt/pamfile/"
至:export DRILL_JAVA_OPTS="$DRILL_JAVA_OPTS -Djava.library.path=/opt/pamfile/"
这个对我有用。
关于centos - Apache Drill 的 JPAM 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57592436/