hadoop:sqoop:获取未知数据库“sample”错误,即使数据库存在

bmvo0sr5  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(496)

我在做基本的试穿 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)
svujldwt

svujldwt1#

试试这个,会有用的
sqoop导入--连接jdbc:mysql://localhost.localdomain/dvs\u db——用户名hadoop——密码hadoop——表dept——目标目录sqoop\u dir/——m1;

相关问题