[ https://issues.apache.org/jira/browse/SQOOP-2940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15315841#comment-15315841 ]
simran commented on SQOOP-2940: ------------------------------- Though this is only a workaround but here is the fix: http://www.yourtechchick.com/sqoop/sqoop-job-fails-to-record-password-after-running-for-the-first-time-problem-fix/ > Sqoop fails to record password sometimes > ---------------------------------------- > > Key: SQOOP-2940 > URL: https://issues.apache.org/jira/browse/SQOOP-2940 > Project: Sqoop > Issue Type: Bug > Components: sqoop2-api > Affects Versions: 1.4.6 > Reporter: simran > > I have my sqoop-site.xml configured to record passwords i. e > <property> > <name>sqoop.metastore.client.record.password</name> > <value>true</value> > <description>If true, allow saved passwords in the metastore. > </description> > </property> > <property> > Also, I created all my jobs after configuring it to record passwords. > Now, it works alright initially but after running the job a couple of times > from oozie, it starts asking for password for only a few of the jobs. > For example, If we have 12 jobs as part of an oozie workflow, oozie job fails > after executing 5-6 jobs. > Though all these jobs were created after setting record password property to > true, it throws an error: > Error executing statement: java.sql.SQLException: Access denied for user > 'root'@'IP' (using password: NO) > java.sql.SQLException: Access denied for user 'root'@'IP' (using password: NO) > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597) > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529) > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:935) > at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4101) > at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1300) > at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2337) > at > com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2370) > at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154) > at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792) > at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(Constructor.java:526) > at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) > at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381) > at > com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305) > at java.sql.DriverManager.getConnection(DriverManager.java:571) > at java.sql.DriverManager.getConnection(DriverManager.java:215) > at > org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:904) > at > org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52) > at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:763) > at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:786) > at > org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:289) > at > org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:260) > at > org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:246) > at > org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:327) > at > org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1846) > at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1646) > at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107) > at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478) > at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605) > at org.apache.sqoop.tool.JobTool.execJob(JobTool.java:228) > 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) > at > org.apache.oozie.action.hadoop.SqoopMain.runSqoopJob(SqoopMain.java:197) > at org.apache.oozie.action.hadoop.SqoopMain.run(SqoopMain.java:177) > at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:49) > at org.apache.oozie.action.hadoop.SqoopMain.main(SqoopMain.java:46) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:236) > at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) > at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453) > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343) > at > org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.runSubtask(LocalContainerLauncher.java:388) > at > org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.runTask(LocalContainerLauncher.java:302) > at > org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.access$200(LocalContainerLauncher.java:187) > at > org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler$1.run(LocalContainerLauncher.java:230) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > 6483 [uber-SubtaskRunner] ERROR org.apache.sqoop.tool.ImportTool - > Encountered IOException running import job: java.io.IOException: No columns > to generate for ClassWriter > at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1652) > at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107) > at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478) > at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605) > at org.apache.sqoop.tool.JobTool.execJob(JobTool.java:228) > 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) > at > org.apache.oozie.action.hadoop.SqoopMain.runSqoopJob(SqoopMain.java:197) > at org.apache.oozie.action.hadoop.SqoopMain.run(SqoopMain.java:177) > at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:49) > at org.apache.oozie.action.hadoop.SqoopMain.main(SqoopMain.java:46) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:236) > at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) > at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453) > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343) > at > org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.runSubtask(LocalContainerLauncher.java:388) > at > org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.runTask(LocalContainerLauncher.java:302) > at > org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.access$200(LocalContainerLauncher.java:187) > at > org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler$1.run(LocalContainerLauncher.java:230) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > (using password NO) is the problem here. It is prompting for password and > since the job is running through oozie (which isn't an interactive mode) and > so password can not be supplied manually. > Also, the command > sqoop job --meta-connect jdbc:hsqldb:hsql://FQDN:16000/sqoop --show > dispatch_job |grep db.require.password > returns false and yet on trying to execute the job, it prompts for password > on the console. -- This message was sent by Atlassian JIRA (v6.3.4#6332)