Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.4.5
-
None
-
None
-
Red Hat Enterprise Linux Server release 6.3 (Santiago)
Description
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