Hadoop:sqoop:获取未知数据库'示例'即使存在数据库也会出错

时间:2014-06-18 10:48:12

标签: hadoop sqoop

我正在sqoop进行基本尝试。使用MySQL我创建了一个数据库示例。我已经在'样本'中创建了一个表格客户。数据库,将一些数据插入表中。

尝试使用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

但是此命令显示表客户:

sqoop list-tables --connect "jdbc:mysql://localhost:3306/sample" --username root --password 123456"

自表&架构是可访问的&适用于list-tables命令,不确定导入命令失败的原因。

我试过以下:

  1. 将所有权限授予客户表。
  2. 删除--connect url。
  3. 中的端口号
  4. 尝试使用IP而不是localhost(获取错误为"驱动程序未收到来自服务器的任何数据包")
  5. 请提出可能存在的问题。

    感谢您的回复。

    日志:

    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 个答案:

答案 0 :(得分:0)

试试这个,它会起作用

sqoop import --connect jdbc:mysql://localhost.localdomain/DVS_DB --username hadoop --password hadoop --table DEPT --target-dir sqoop_dir / --m 1;