我在做基本的试穿 sqoop
. 我使用mysql创建了一个数据库示例。我在“sample”数据库中创建了一个表customers,在表中插入了一些数据。
在尝试使用sqoop将表导入hdfs时 Unknown database 'sample'
,即使存在数据库。
使用的sqoop命令:
sqoop import --connect "jdbc:mysql://localhost:3306/sample" --username root --password 123456 --table customers --target-dir hdfs:/sqoop/customers2 -m 1
但是这个命令显示表customer:
sqoop list-tables --connect "jdbc:mysql://localhost:3306/sample" --username root --password 123456"
因为table&schema是可访问的,并且对于list tables命令工作正常,所以不能确定import命令失败的原因。
我试着做到:
将所有特权授予customer表。
删除--connect url中的端口号。
尝试ip而不是localhost(获取错误为“驱动程序未从服务器接收到任何数据包”)
请提出可能的问题。
感谢您的回复。
日志:
java.lang.RuntimeException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'sample'
at org.apache.sqoop.mapreduce.db.DBInputFormat.setConf(DBInputFormat.java:167)
at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:722)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'sample'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
1条答案
按热度按时间svujldwt1#
试试这个,会有用的
sqoop导入--连接jdbc:mysql://localhost.localdomain/dvs\u db——用户名hadoop——密码hadoop——表dept——目标目录sqoop\u dir/——m1;