Hadoop:sqoop:即使数据库存在,也会出现未知数据库“样本"错误 [英] Hadoop : sqoop : getting Unknown database 'sample' error even though database exist

查看:83
本文介绍了Hadoop:sqoop:即使数据库存在,也会出现未知数据库“样本"错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 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.

我尝试了以下操作:

  1. 将所有特权授予客户表.
  2. 删除--connect网址中的端口号.
  3. 尝试使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆