Apache Drill 的 JPAM 配置
Posted
技术标签:
【中文标题】Apache Drill 的 JPAM 配置【英文标题】:JPAM Configuration for Apache Drill 【发布时间】:2019-08-21 13:09:00 【问题描述】:我正在尝试配置基于 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 身份验证的先决条件?
【问题讨论】:
【参考方案1】:尝试改变:
export DRILLBIT_JAVA_OPTS="-Djava.library.path=/opt/pamfile/"
到:
export DRILL_JAVA_OPTS="$DRILL_JAVA_OPTS -Djava.library.path=/opt/pamfile/"
它对我有用。
【讨论】:
以上是关于Apache Drill 的 JPAM 配置的主要内容,如果未能解决你的问题,请参考以下文章