Sqoop 自定义 PasswordLoader

Sqoop custom PasswordLoader

我正在尝试创建自定义 PasswordLoader 我创建了一个 class:

package custom.password.loader 
class CustomPasswordLoader extends FilePasswordLoader {
   override def loadPassword(p: String, conf: Configuration): String = ???
}

调用以下 sqoop 调用:

sqoop export -libjars /path/to/jar/the.jar -Dorg.apache.sqoop.credentials.loader.class=custom.password.loader.CustomPasswordLoader --password-file some_file ...

我得到:

java.io.IOException: java.lang.ClassNotFoundException

意思是 sqoop 在 class 路径上找不到这个 class。我怎么能把它添加到 jar 到 sqoop classpath 而不把它安装在 $SQOOP_HOME/lib

Sqoop 版本:1.4.6-cdh5.12.1

由于在实际的 sqoop 调用类路径中需要 PasswordLoader,因此它必须位于 $SQQOP_HOME/lib

-libjar--files 是传递给底层 MR 作业的参数。