使用密码文件选项进行sqoop和密码加密

时间:2014-05-28 16:21:32

标签: sqoop

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

1 个答案:

答案 0 :(得分:5)

在给定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

需要注意的重要参数是:

  1. org.apache.sqoop.credentials.loader.class - 凭据加载程序
  2. org.apache.sqoop.credentials.loader.crypto.alg - 用于解密文件的算法(默认为AES / ECB / PKCS5Padding)。
  3. org.apache.sqoop.credentials.loader.crypto.salt - 用于使用密码短语导出密钥的salt(默认为SALT)。
  4. org.apache.sqoop.credentials.loader.crypto.iterations - PBKDF2迭代次数(默认为10000)。
  5. org.apache.sqoop.credentials.loader.crypto.salt.key.len - 派生密钥长度(默认为128)。
  6. org.apache.sqoop.credentials.loader.crypto.passphrase用于派生密钥的密码。
  7. 您还可以使用其他几个选项more