我正在使用 sqoop-1.4.3-cdh4.6.0.jar,我想知道 --password-file 选项在那个版本中是否可用。
如果是,有人能给我一个如何调用加密过程的例子吗?提供一个命令示例,可以看到cdh4.6.0已经引入了补丁,但不确定sqoop 1.4.3是否可以使用它。

最佳答案

鉴于 https://issues.apache.org/jira/browse/SQOOP-1223 ,它可能不在 CDH 4.6.0 中。我会升级到 Sqoop 1.4.5 以获得此功能。

这是一个快速的 Sqoop 命令示例:

sqoop import \
    -Dorg.apache.sqoop.credentials.loader.class=org.apache.sqoop.util.password.CryptoFileLoader \
    -Dorg.apache.sqoop.credentials.loader.crypto.passphrase=sqoop2 \
    --connect jdbc:mysql://example.com/sqoop \
    --username sqoop \
    --password-file file:///tmp/pass.enc \
    --table tbl

需要注意的重要参数是:
  • org.apache.sqoop.credentials.loader.class - 凭证加载器
  • org.apache.sqoop.credentials.loader.crypto.alg – 用于解密文件的算法(默认为 AES/ECB/PKCS5Padding)。
  • org.apache.sqoop.credentials.loader.crypto.salt – 用于使用密码派生 key 的盐(默认为 SALT)。
  • org.apache.sqoop.credentials.loader.crypto.iterations – PBKDF2 迭代次数(默认为 10000)。
  • org.apache.sqoop.credentials.loader.crypto.salt.key.len – 派生 key 长度(默认为 128)。
  • org.apache.sqoop.credentials.loader.crypto.passphrase 用于派生 key 的密码。

  • 您还可以使用其他几个选项 more

    关于使用密码文件选项的 sqoop 和密码加密,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23916985/

    10-16 03:09