sqoop支持将password放在password-file中,这个文件可以是本地文件(file:///home/luosa/password),也可以在hdfs上(/user/luosa/password)。
但是,我们执行命令时确保错:
denied for user 'retail_dba'@'localhost' (using password: YES)
java.sql.SQLException: Access denied for user 'retail_dba'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLErro
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:12
at com.mysql.jdbc.ConnectionImpl.coreConnect(Connecti
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(Co
at com.mysql.jdbc.ConnectionImpl.createNewIO(Connecti
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImp
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connect
at sun.reflect.NativeConstructorAccessorImpl.newInsta
at sun.reflect.NativeConstructorAccessorImpl.newInsta
at sun.reflect.DelegatingConstructorAccessorImpl.newI
at java.lang.reflect.Constructor.newInstance(Construc
at com.mysql.jdbc.Util.handleNewInstance(Util.java:37
at com.mysql.jdbc.ConnectionImpl.getInstance(Connecti
at com.mysql.jdbc.NonRegisteringDriver.connect(NonReg
at java.sql.DriverManager.getConnection(DriverManager
at java.sql.DriverManager.getConnection(DriverManager
at org.apache.sqoop.manager.SqlManager.makeConnection
at org.apache.sqoop.manager.GenericJdbcManager.getCon
at org.apache.sqoop.manager.SqlManager.execute(SqlMan
at org.apache.sqoop.manager.SqlManager.execute(SqlMan
at org.apache.sqoop.manager.SqlManager.getColumnInfoF
at org.apache.sqoop.manager.SqlManager.getColumnTypes
at org.apache.sqoop.manager.SqlManager.getColumnTypes
at org.apache.sqoop.manager.ConnManager.getColumnType
at org.apache.sqoop.orm.ClassWriter.getColumnTypes(Cl
at org.apache.sqoop.orm.ClassWriter.generate(ClassWri
at org.apache.sqoop.tool.CodeGenTool.generateORM(Code
at org.apache.sqoop.tool.ImportTool.importTable(Impor
at org.apache.sqoop.tool.ImportTool.run(ImportTool.ja
at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.j
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)
15/09/12 06:53:35 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: No columns to generate for ClassWriter
at org.apache.sqoop.orm.ClassWriter.generate(ClassWri
at org.apache.sqoop.tool.CodeGenTool.generateORM(Code
at org.apache.sqoop.tool.ImportTool.importTable(Impor
at org.apache.sqoop.tool.ImportTool.run(ImportTool.ja
at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.j
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)
具体的原因就是password的格式不对,只要使用命令:
echo -n "password" >> /home/luosa/password
问题就解决了。