如何在执行Job时省略输入MySQL密码

分类:编程技术 时间:2024-02-20 16:16 浏览:0 评论:0
0
本文介绍“如何在执行作业时省略输入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

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.pwd

2.检查sqoop配置文件(sqoop-site.xml)是否存在以下配置,且值为true


< p> <名称>sqoop.metastore.client.record.password

true

如果为 true,则允许在元存储中保存密码。< br/ >


注意:密码文件格式不正确,错误信息如下:

警告:/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 导入将失败。

请将 $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.(ConnectionImpl.java:776)

at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)

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密码的方法介绍如下。感谢您的阅读。如果您想了解更多行业资讯,可以关注网站,小编将为大家输出更多优质实用文章!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何在执行Job时省略输入MySQL密码

用户评论