sqoop把oracle数据导入hive出现的问题
2018-03-21 18:01
423 查看
问题描述:
使用sqoop将oracle数据库的数据导入到hive中,一直提示“表或者视图不存在”,经检查,数据库,用户名,密码均无误,但是仍然无法导入
除此之外,我还发现了一个问题,在我们使用java写连接oracle数据库的url时,一般会这样写:
难道客户的servername和sid是相同的吗?
使用sqoop将oracle数据库的数据导入到hive中,一直提示“表或者视图不存在”,经检查,数据库,用户名,密码均无误,但是仍然无法导入
解决方案: 这个我第一次的import语句: sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.1.1:1521:qxf --username qxf --password qxf --table test --hive-table raw.I_DEFINE -m 1 --hive-overwrite --input-null-string '\\N' --input-null-non-string '\\N' --null-string '\\N' --null-non-string '\\N' --hive-drop-import-delims --fields-terminated-by '\0001' 我在使用上述语句导入时,一直报错,一直百度未果,突然想到, 上述的只是我每次用于在oracle数据库提供的是ServerName的时候,而这次用户提供的是数据库的sid, 然后我百度了一下两者的区别,恍然大悟: SERVICE_NAME指的是listener中的全局数据库名 sid 是数据库服务本身的一个实例区分而已 所以我应该这么写: sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.1.1:1521:qxf --username qxf --password qxf --table qxf.test --hive-table raw.I_DEFINE -m 1 --hive-overwrite --input-null-string '\\N' --input-null-non-string '\\N' --null-string '\\N' --null-non-string '\\N' --hive-drop-import-delims --fields-terminated-by '\0001' 在table中加入数据库的数据库名称,因为我们是使用sid连接数据库的, sqoop无法像通过servername一样扫描整个数据库,只有通过sid才可以去查找数据库信息, 但是如果没有指定数据库名称,那么就会出现问题, 提示“表或者视图不存在”,这就是我今天为什么导入一直报错的原因
除此之外,我还发现了一个问题,在我们使用java写连接oracle数据库的url时,一般会这样写:
通过sid连接: jdbc:oracle:thin:@localhost:1521:orcl 通过servername连接: jdbc:oracle:thin:@//localhost:1521/orcl.city.com
但是,问题来了!!!
为什么客户提供了ServerName,我却同样可以使用sid的连接的方式写url去import数据?而且还成功了?难道客户的servername和sid是相同的吗?
相关文章推荐
- Sqoop将Oracle数据导入Hive时出现异常 running import job: java.io.IOException: Hive exited with status 1
- Sqoop将Oracle数据导入HDFS时出现权限问题: Permission denied: user=root, access=WRITE,
- Sqoop将数据从oracle导入到hive时,数据错位问题
- 运用sqoop将数据从oracle导入到hive中的注意的问题
- Sqoop将MySQL和Oracle的数据导入HIVE和Hbase
- 很诡异,给hive中的数据表导入数据,出现的问题?
- 利用sqoop 将 hive/hdfs数据 导入 Oracle中
- sqoop从oracle导入数据导hive表不支持的数据类型
- 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- 使用Sqoop将数据从Hive导入MySQL可能遇到的问题
- SQOOP从Oracle导入数据到Hive时hang up在MapReduce作业过程
- sqoop-从mysql导入数据到hive出现java.sql.SQLException: Streaming result set com.mysql.jdbc.
- Sqoop工具使用(一)--从oracle导入数据到hive
- 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- 使用sqoop1.4.4从oracle导入数据到hive中错误记录及解决方案
- 通过sqoop导入Oracle数据到Hive时异常.IOException: Cannot run program "hive": error=2, No such file or directory
- sqoop导入oracle数据至hive
- 工作中,sqoop导入导出hive,mysql 出现的问题.
- 《Sqoop将Oracle数据导入至Hive中界面无错却依旧没有数据导入》