Hadoop:sqoop:即使数据库存在,也会出现未知数据库“样本"错误 [英] Hadoop : sqoop : getting Unknown database 'sample' error even though database exist
问题描述
我正在使用 sqoop
做基本的尝试.我使用MySQL创建了一个数据库示例.我已经在样本"数据库中创建了一个表客户,并将一些数据插入表中.
I'm doing basic try in sqoop
. using MySQL i have created a database sample. I've created a table customers in 'sample' database, inserted some data into the table.
尝试使用sqoop将表导入到hdfs时,即使数据库存在,我也会得到未知数据库'sample'
.
While trying to import the table to hdfs using sqoop I'm getting Unknown database 'sample'
, even though database present.
使用的sqoop命令:
sqoop command used:
sqoop import --connect "jdbc:mysql://localhost:3306/sample" --username root --password 123456 --table customers --target-dir hdfs:/sqoop/customers2 -m 1
但是此命令显示表客户:
but this command shows table customer:
sqoop list-tables --connect "jdbc:mysql://localhost:3306/sample" --username root --password 123456"
自表&模式是可访问的&不确定list-tables命令能否正常运行,不确定为什么导入命令会失败.
Since table & schema is accessible & works fine for list-tables command not sure why import command fails.
我尝试了以下操作:
- 将所有特权授予客户表.
- 删除--connect网址中的端口号.
- 尝试使用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)
推荐答案
尝试一下,它将起作用
sqoop导入--connect jdbc:mysql://localhost.localdomain/DVS_DB-用户名hadoop-密码hadoop --table DEPT --target-dir sqoop_dir/--m 1;
sqoop import --connect jdbc:mysql://localhost.localdomain/DVS_DB --username hadoop --password hadoop --table DEPT --target-dir sqoop_dir/ --m 1;
这篇关于Hadoop:sqoop:即使数据库存在,也会出现未知数据库“样本"错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!