【问题标题】:Getting error while running scoop import job运行 scoop 导入作业时出错
【发布时间】:2020-06-20 16:35:55
【问题描述】:

我正在尝试使用 scoop 将数据从 MySQL 数据库导入 hdfs,但出现“No columns to generate for ClassWriter”错误。

这是我的独家新闻命令:

sqoop import --connect jdbc:mysql://xxxxx.xxxx.us-east-1.rds.amazonaws.com/xxxx --username xxxx --password xxxx --table xxxx --null-string 'NA' --null-non-string '\\N' --warehouse-dir /user/romeo/finalproject/cardMember

这是错误堆栈:

20/03/08 16:11:27 ERROR manager.SqlManager: Error execution statement: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: 通讯链路故障

最后一个成功发送到服务器的数据包是 0 毫秒 前。驱动程序没有收到来自服务器的任何数据包。 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: 通讯链路故障

最后一个成功发送到服务器的数据包是 0 毫秒 前。驱动程序没有收到来自服务器的任何数据包。 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 在 com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121) 在 com.mysql.jdbc.MysqlIO.(MysqlIO.java:357) 在 com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2484) 在 com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2521) 在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2306) 在 com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:839) 在 com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:49) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 在 com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:421) 在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:350) 在 java.sql.DriverManager.getConnection(DriverManager.java:571) 在 java.sql.DriverManager.getConnection(DriverManager.java:215) 在 org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:903) 在 org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52) 在 org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:762) 在 org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:785) 在 org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:288) 在 org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:259) 在 org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:245) 在 org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:333) 在 org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1858) 在 org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1657) 在 org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:106) 在 org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:494) 在 org.apache.sqoop.tool.ImportTool.run(ImportTool.java:621) 在 org.apache.sqoop.Sqoop.run(Sqoop.java:147) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:234) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:243) 在 org.apache.sqoop.Sqoop.main(Sqoop.java:252) 引起:java.net.UnknownHostException: 升级awsrds.cpclxrkdvwmz.us-east1.rds.amazonaws.com 在 java.net.Inet4AddressImpl.lookupAllHostAddr(本机方法) 在 java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901) 在 java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293) 在 java.net.InetAddress.getAllByName0(InetAddress.java:1246) 在 java.net.InetAddress.getAllByName(InetAddress.java:1162) 在 java.net.InetAddress.getAllByName(InetAddress.java:1098) 在 com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:249) 在 com.mysql.jdbc.MysqlIO.(MysqlIO.java:307) ... 33 更多 20/03/08 16:11:27 错误 tool.ImportTool: Import failed: java.io.IOException: No columns to generate for ClassWriter 在 org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1663) 在 org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:106) 在 org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:494) 在 org.apache.sqoop.tool.ImportTool.run(ImportTool.java:621) 在 org.apache.sqoop.Sqoop.run(Sqoop.java:147) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:234) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:243) 在 org.apache.sqoop.Sqoop.main(Sqoop.java:252)

知道如何解决这个问题吗?提前谢谢你。

【问题讨论】:

标签: mysql hadoop sqoop


【解决方案1】:

从堆栈跟踪中可以清楚地看出,这是由关于 URI upgradawsrds.cpclxrkdvwmz.us-east1.rds.amazonaws.comjava.net.UnknownHostException 引起的. URI 不正确或它指向的 DNS 服务器未解析。更新 URI 以更新 DNS。

【讨论】:

  • 嗨@Jason,谢谢我已经更新了URI并发布了我遇到权限问题。 诊断:应用程序 application_1583656027212_0004 初始化失败(exitCode=255),输出:main:提供的命令 0 main:以用户身份运行 main:请求的纱线用户是 hdfs 无法创建目录 /yarn/nm/usercache/hdfs/ appcache/application_1583656027212_0004 - 权限被拒绝 没有创建任何应用程序目录 知道如何提供对该路径的访问权限吗?
猜你喜欢
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
相关资源
最近更新 更多