[
https://issues.apache.org/jira/browse/SQOOP-1933?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14255565#comment-14255565
]
Jarek Jarcec Cecho commented on SQOOP-1933:
-------------------------------------------
I believe that this is caused by the fact that we are not persisting the Hadoop
properties (that are used to configure the Crypto loader) with saved job which
is already covered by SQOOP-434.
> CryptoFileLoader does not work for saved jobs
> ---------------------------------------------
>
> Key: SQOOP-1933
> URL: https://issues.apache.org/jira/browse/SQOOP-1933
> Project: Sqoop
> Issue Type: Bug
> Affects Versions: 1.4.5
> Environment: Red Hat Enterprise Linux Server release 6.3 (Santiago)
> Reporter: Karthik S
> Fix For: 1.4.5
>
>
> I am able to use the CryptoFile Loader to read encrypted passwords from a
> simple import command. However, the same command does not work from saved jobs
> The below command works. There are no problems with it. It successfully
> decrypts the password and imports into hdfs
> sqoop import
> -Dorg.apache.sqoop.credentials.loader.class=org.apache.sqoop.util.password.CryptoFileLoader
> -Dorg.apache.sqoop.credentials.loader.crypto.passphrase=sqooppass --driver
> com.mysql.jdbc.Driver --connect jdbc:mysql://00.00.000.000:0000/test
> --username user --password-file /user/user1/temp.txt --table emp
> --target-dir /user/user1/karthik/e129 --split-by emp_id
> However, When i try using saved jobs, it does not work.
> sqoop job
> -Dorg.apache.sqoop.credentials.loader.class=org.apache.sqoop.util.password.CryptoFileLoader
> -Dorg.apache.sqoop.credentials.loader.crypto.passphrase=sqooppass --create
> job9 -- import --driver com.mysql.jdbc.Driver --connect
> jdbc:mysql://00.00.000.000:3306/test --username user --password-file
> /user/user1/temp.txt --table emp --target-dir /user/user1/karthik/e130
> --split-by emp_id
> sqoop job -exec job9 -- --target-dir /user/user1/emp_103
> It gives error
> 14/12/22 15:39:48 ERROR sqoop.Sqoop: Got exception running Sqoop:
> java.lang.RuntimeException: Unable to fetch password from file.
> java.lang.RuntimeException: Unable to fetch password from file.
> at
> org.apache.sqoop.SqoopOptions.loadPasswordProperty(SqoopOptions.java:667)
> at org.apache.sqoop.SqoopOptions.loadProperties(SqoopOptions.java:617)
> at
> org.apache.sqoop.metastore.hsqldb.HsqldbJobStorage.read(HsqldbJobStorage.java:299)
> at org.apache.sqoop.tool.JobTool.execJob(JobTool.java:198)
> at org.apache.sqoop.tool.JobTool.run(JobTool.java:283)
> at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
> at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
> at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
> Caused by: java.io.IOException: Can't decrypt the password
> at
> org.apache.sqoop.util.password.CryptoFileLoader.loadPassword(CryptoFileLoader.java:151)
> at
> org.apache.sqoop.util.CredentialsUtil.fetchPasswordFromLoader(CredentialsUtil.java:81)
> at
> org.apache.sqoop.SqoopOptions.loadPasswordProperty(SqoopOptions.java:664)
> ... 10 more
> Caused by: javax.crypto.BadPaddingException: Given final block not properly
> padded
> at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:811)
> at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:676)
> at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:313)
> at javax.crypto.Cipher.doFinal(Cipher.java:2087)
> at
> org.apache.sqoop.util.password.CryptoFileLoader.loadPassword(CryptoFileLoader.java:149)
> ... 12 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)