HI,

I am trying to configure user authentication in Drill.

I am referring :
https://drill.apache.org/docs/configuring-user-authentication/

I copies libpam.so at /opt/pam (it does not contain any hadoop component)

I made entry in drill-env.sh:

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

I modified drill-override.conf:

  drill.exec {
   security.user.auth {
         enabled: true,
         packages += "org.apache.drill.exec.rpc.user.security",
         impl: "pam",
         pam_profiles: [ "sudo", "login" ]
   }
  }

I am getting exception:


java.sql.SQLException: 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
at
org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnectionImpl.java:127)
at
org.apache.drill.jdbc.impl.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:64)
at
org.apache.drill.jdbc.impl.DrillFactory.newConnection(DrillFactory.java:69)
at
net.hydromatic.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:126)
at org.apache.drill.jdbc.Driver.connect(Driver.java:72)
at sqlline.DatabaseConnection.connect(DatabaseConnection.java:167)
at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:213)
at sqlline.Commands.connect(Commands.java:1083)
at sqlline.Commands.connect(Commands.java:1015)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
at sqlline.SqlLine.dispatch(SqlLine.java:742)
at sqlline.SqlLine.initArgs(SqlLine.java:528)
at sqlline.SqlLine.begin(SqlLine.java:596)
at sqlline.SqlLine.start(SqlLine.java:375)
at sqlline.SqlLine.main(SqlLine.java:268)
Caused by: 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
at
org.apache.drill.exec.rpc.user.security.PamUserAuthenticator.setup(PamUserAuthenticator.java:53)
at
org.apache.drill.exec.rpc.user.security.UserAuthenticatorFactory.createAuthenticator(UserAuthenticatorFactory.java:90)
at org.apache.drill.exec.rpc.user.UserServer.<init>(UserServer.java:78)
at org.apache.drill.exec.service.ServiceEngine.<init>(ServiceEngine.java:64)
at org.apache.drill.exec.server.Drillbit.<init>(Drillbit.java:190)
at org.apache.drill.exec.server.Drillbit.<init>(Drillbit.java:178)
at
org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnectionImpl.java:117)
... 18 more
Caused by: java.lang.UnsatisfiedLinkError: no jpam in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at net.sf.jpam.Pam.<clinit>(Pam.java:51)
at
org.apache.drill.exec.rpc.user.security.PamUserAuthenticator.setup(PamUserAuthenticator.java:47)
... 24 more




Regards,
Devender

Reply via email to