如何在执行Job时省略输入MySQL密码
1.删除作业
sqoop作业\
--删除testjob
2.创建作业
注意:创建作业时,我们使用--password-file参数,而不是--passowrd。主要原因是执行Job时使用--password参数会出现警告,并且需要密码才能执行Job。当我们使用--password-file参数时,执行Job时不需要输入数据库密码。
sqoop作业\
--创建测试作业\
--\
导入\
< p>--连接jdbc:mysql://192.168.137.130:3306/jepsondb \--用户名root \
--密码文件/input/sqoop.pwd \
--table abc \
--target-dir /input/abc \
--delete-target-dir \
-m 1
注意:import与“--”之间必须有空格
3 。执行作业strong>
sqoop job \
--exec testjob
4.创建--password-file参数所需的密码文件(注:sqoop规定密码文件必须放在HDFS上,且权限必须为400)
1.操作命令:
echo -n "123456" > sqoop.pwd
hdfs dfs -rm sqoop.pwd /input/sqoop.pwd p>
hdfs dfs -put sqoop.pwd /input
hdfs dfs -chmod 400 /input/sqoop.pwd
hdfs dfs -ls /input
< p>-r- ------- 1 hadoop 超组 6 2023-01-15 18:38 /input/sqoop.pwd2.检查sqoop配置文件(sqoop-site.xml)是否存在以下配置,且值为true
注意:密码文件格式不正确,错误信息如下:
警告:/app/sqoop-1.4.6-cdh6.7.0/../hbase不存在! HBase 导入将失败。
请将 $HBASE_HOME 设置为 HBase 安装的根目录。
警告:/app/sqoop-1.4.6-cdh6.7.0/../hcatalog不存在! HCatalog 作业将失败。
< p>请将 $HCAT_HOME 设置为 HCatalog 安装的根目录。警告:/app/sqoop-1.4.6-cdh6.7.0/../accumulo不存在! Accumulo 导入将失败。
请将 $ACCUMULO_HOME 设置为 Accumulo 安装的根目录。
警告:/app/sqoop-1.4.6-cdh6.7.0/../zookeeper不存在! Accumulo 导入将失败。 p>
请将 $ZOOKEEPER_HOME 设置为 Zookeeper 安装的根目录。
18/01/15 18:33:50 INFO sqoop.Sqoop:运行 Sqoop 版本:1.4.6-cdh6.7.0
18/01/15 18:33:53 INFO manager.MySQLManager:准备使用 MySQL 流结果集。
18/01/15 18:33:53 信息工具。 CodeGenTool:开始代码生成
18/01/15 18:33:54 错误 manager.SqlManager:执行语句时出错:java.sql.SQLException:用户“root”@“spark220”的访问被拒绝(使用密码:YES)
java.sql.SQLException:用户'root'@'spark220'访问被拒绝(使用密码:YES)
com.mysql.jdbc.SQLError。 createSQLException(SQLError.java:965)
在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
在 com.mysql.jdbc.MysqlIO.checkErrorPacket( MysqlIO.java:3909)
p>
在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873)
在 com.mysql.jdbc.MysqlIO .proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1710)
在 com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226)
在 com.mysql.jdbc.ConnectionImpl.coreConnect (ConnectionImpl.java:2188)
atcom.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2219)
在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2014)
在 com. mysql.jdbc.ConnectionImpl.
at com.mysql.jdbc.JDBC4Connection.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl) .java:45)
在 java.lang.reflect.Constructor.newInstance(Constructor.java:423)
在 com.mysql.jdbc.Util.handleNewInstance( Util.java :425)
在 com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330) )
在 java.sql.DriverManager.getConnection(DriverManager.java:664)
在 java.sql.DriverManager.getConnection(DRiverManager.java:247)
p>在 org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:904)
在 org.apache.sqoop.manager。 GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
在 org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:763)
在 org.apache.sqoop. manager.SqlManager.execute(SqlManager.java: 786)
在 org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:289)
在 org.apache. sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:260)
在 org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:246)
在 org. apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:327)
在 org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1846)
在org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1646)
在 org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107)
在 org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478)
在 org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
在 org.apache.sqoop.Sqoop.run(Sqoop. java:143)
在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
在 org.apache.sqoop.Sqoop.runSqoop(Sqoop. java:179)
在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
在 org.apache.sqoop.Sqoop.runTool(Sqoop.java: 227)
at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
18/01/15 18:33:54 错误工具.ImportTool:遇到 IOException运行导入作业:java.io。 IOException:没有为 ClassWriter 生成列
在 org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1652)
在 org.apache.sqoop.tool.CodeGenTool .generateORM(CodeGenTool.java:107)
在 org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478)
在 org.apache.sqoop.tool .ImportTool.run( ImportTool.java:605)
在 org.apache.sqoop.Sqoop.run(Sqoop.java:143)
在 org.apache.hadoop.util .ToolRunner.run( ToolRunner.java:70)
在 org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
在 org.apache. sqoop.Sqoop.runTool(Sqoop.java:227)
位于 org.apache.sqoop.Sqoop.main(Sqoop.java: 236)
"如何执行作业时省略输入MySQL密码的方法介绍如下。感谢您的阅读。如果您想了解更多行业资讯,可以关注网站,小编将为大家输出更多优质实用文章!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何在执行Job时省略输入MySQL密码