0

我正在尝试基于 JPAM 1.1 配置 PLAIN 身份验证,并且因为在 x 次检查我的语法和设置后它不起作用,所以我发疯了。当我仅使用 cluster-id 和 zk-connect 开始钻取时,它可以工作,但是使用 PLAIN 身份验证的两个选项都会失败。因为我从 pam4j 开始,后来又尝试了 JPAM,所以我为这篇文章保留了 JPAM。一般来说,我没有任何偏好。我只是想完成它。我在 CentOS 上以嵌入式模式运行 Drill。

由于官方文档,我已经做了任何需要的事情:

  • 我下载了 JPAM 1.1,解压缩并将libjpam.so放入特定文件夹(/opt/pamfile/)

  • 我编辑了 Drill-env.sh: export DRILLBIT_JAVA_OPTS="-Djava.library.path=/opt/pamfile/"

  • 我编辑了Drill-override.conf

    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 身份验证的先决条件?

4

1 回答 1

2

尝试改变:

export DRILLBIT_JAVA_OPTS="-Djava.library.path=/opt/pamfile/"

至:

export DRILL_JAVA_OPTS="$DRILL_JAVA_OPTS -Djava.library.path=/opt/pamfile/"

这个对我有用。

于 2019-10-03T07:48:11.957 回答