问题描述

安装Sqoop后,将mysql导入hive异常: No suitable driver found for jdbc:mysql:/192.168.5.102:3306/test

具体报错如下

[root@hx002 ~]# sqoop export --connect jdbc:mysql:/192.168.5.102:3306/test --username root --password root1234 --table ods_test_stu --export-dir /user/hive/warehouse/ods_test_stu --fields-terminated-by '\001'

Warning: /opt/module/sqoop-1.4.7.bin__hadoop-2.6.0/../hbase does not exist! HBase imports will fail.

Please set $HBASE_HOME to the root of your HBase installation.

Warning: /opt/module/sqoop-1.4.7.bin__hadoop-2.6.0/../hcatalog does not exist! HCatalog jobs will fail.

Please set $HCAT_HOME to the root of your HCatalog installation.

Warning: /opt/module/sqoop-1.4.7.bin__hadoop-2.6.0/../accumulo does not exist! Accumulo imports will fail.

Please set $ACCUMULO_HOME to the root of your Accumulo installation.

Warning: /opt/module/sqoop-1.4.7.bin__hadoop-2.6.0/../zookeeper does not exist! Accumulo imports will fail.

Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.

22/05/05 10:54:34 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7

22/05/05 10:54:34 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.

22/05/05 10:54:34 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.

22/05/05 10:54:35 INFO tool.CodeGenTool: Beginning code generation

22/05/05 10:54:35 ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: No suitable driver found for jdbc:mysql:/192.168.5.102:3306/test

java.sql.SQLException: No suitable driver found for jdbc:mysql:/192.168.5.102:3306/test

        at java.sql.DriverManager.getConnection(DriverManager.java:689)

        at java.sql.DriverManager.getConnection(DriverManager.java:247)

        at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:904)

        at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:59)

        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:1872)

        at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1671)

        at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:106)

        at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:63)

        at org.apache.sqoop.tool.ExportTool.run(ExportTool.java:99)

        at org.apache.sqoop.Sqoop.run(Sqoop.java:147)

        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)

        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)

        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)

        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)

        at org.apache.sqoop.Sqoop.main(Sqoop.java:252)

22/05/05 10:54:35 ERROR tool.ExportTool: Encountered IOException running export job:

java.io.IOException: No columns to generate for ClassWriter

        at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1677)

        at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:106)

        at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:63)

        at org.apache.sqoop.tool.ExportTool.run(ExportTool.java:99)

        at org.apache.sqoop.Sqoop.run(Sqoop.java:147)

        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)

        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)

        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)

        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)

        at org.apache.sqoop.Sqoop.main(Sqoop.java:252)

问题排查与解析

错误排查,连接URL格式出现问题:

错误输入:

[root@hx002 ~]# sqoop export --connect jdbc:mysql:/192.168.5.102:3306/test --username root --password root1234 --table ods_test_stu --export-dir /user/hive/warehouse/ods_test_stu --fields-terminated-by '\001'

修改后

sqoop export --connect jdbc:mysql://192.168.5.102:3306/test --username root --password root1234 --table ods_test_stu --export-dir /user/hive/warehouse/ods_test_stu --fields-terminated-by '\001'

问题延展

今天编码出现了No suitable driver found for jdbc,找遍了网上的资料,基本上都说是三个问题:

    一是:连接URL格式出现了问题(Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/XX","root","XXXX")

    二是:驱动字符串出错(com.mysql.jdbc.Driver)

    三是Classpath中没有加入合适的mysql_jdbc驱动

好文链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。