美文网首页
Sqoop简单使用及出现的问题

Sqoop简单使用及出现的问题

作者: 南山山大王 | 来源:发表于2018-02-24 10:39 被阅读0次

Sqoop简单使用

http://blog.csdn.net/Post_Yuan/article/details/56840451

1. 列出CDH目录下面的sqoop相关命令:

[root@n12 bin]# pwd

/opt/cloudera/parcels/CDH/bin

[root@n12 bin]# ll sqoop*

sqoop help

2. oracle 抽数据到hive,需要准备jdbc驱动ojdbc6.jar, 将下载的ojdbc6.jar放到$SQOOP_HOME/lib目录下:

/opt/cloudera/parcels/CDH/lib/sqoop/lib[root@n12 lib]# ll ojdbc6.jar-rwxrwxrwx 1 root root 2739670 Feb 24 14:50 ojdbc6.jar

3. 执行 sqoop list-tables命令可以列出oracle的表:

sqoop-list-tables --driver oracle.jdbc.OracleDriver --connect jdbc:oracle:thin:@10.00.00.00:1521/test --username sys --password system

4. 执行sqoop import命令抽取oracle中的一个表到hive:

sqoop-import --connect jdbc:oracle:thin:@10.00.00.00:1521/test --username sys --password system --table TALENT_INFO  --hive-import --create-hive-table --hive-table TALENT_INFO --hive-overwrite --null-string '\\N' --null-non-string '\\N' --hive-drop-import-delims --verbose

此时出现问题:

Oracle: Connection Reset Errors

11/05/26 16:23:47 INFO mapred.JobClient: Task Id : attempt_201105261333_0002_m_000002_0, Status : FAILED

java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLRecoverableException: IO Error: Connection reset

at com.cloudera.sqoop.mapreduce.db.DBInputFormat.setConf(DBInputFormat.java:164)

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:605)

at org.apache.hadoop.mapred.MapTask.run(MapTask.java:322)

参考:https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_oracle_connection_reset_errors

在java.security文件中修改:

securerandom.source=file:/dev/../dev/urandom

之后,又遇到Error: TALENT_INFO : Unsupported major.minor version 52.0

http://blog.csdn.net/xiao_jun_0820/article/details/50716025

该问题为cdh的java jdk版本与系统的jdk版本不一致导致的。

但是oracle连接总是间断出现connection reset的问题。

https://blog.pythian.com/connection-resets-when-importing-from-oracle-with-sqoop/

参考该作者的解决思路,应该是修改java文件没有生效的缘故。

在sqoop语句中增加 -D mapred.child.java.opts="-Djava.security.egd=file:/dev/../dev/urandom"

sqoop-import -D mapred.child.java.opts="-Djava.security.egd=file:/dev/../dev/urandom" --connect jdbc:oracle:thin:@10.00.00.00:1521/test --username sys --password system --table FA.FA_ASSET_KEYWORDS  --hive-import  --hive-database zr_test  --create-hive-table --hive-table FA_ASSET_KEYWORDS --hive-overwrite --null-string '\\N' --null-non-string '\\N' --hive-drop-import-delims -m 1 --verbose

另外还有出现:

IO Error: Got minus one from a read call

该问题应该是oracle数据库连接池连接数有限制。

相关文章

  • Sqoop简单使用及出现的问题

    Sqoop简单使用 http://blog.csdn.net/Post_Yuan/article/details/...

  • Sqoop基本语法简介

    简介:本篇文章主要介绍sqoop的基本语法及简单使用方法。 1.查看命令帮助 2.list-databases 3...

  • 2.2 sqoop指定目标路径

    Apache Sqoop Cookbook 英文版-翻译学习!! sqoop 主要的命令 问题 上一节使用的例子能...

  • Sqoop简单使用案例

    一.导入数据 在Sqoop中,“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBA...

  • 尚硅谷大数据技术之Sqoop

    第4章 Sqoop的简单使用案例4.1 导入数据在Sqoop中,“导入”概念指:从非大数据集群(RDBMS)向大数...

  • Sqoop的简单使用案例

    (配置sqoop家目录环境变量,略) 验证Sqoop连接MySQL: bin/sqoop list-databas...

  • Sqoop的简单使用案例

    导入数据 在Sqoop中,“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE...

  • hive增量抽取方案

    一、使用sqoop从mysql中抽取数据到hive,查看sqoop官方文档,有如下两种方案: 示例: 简单说,sq...

  • pysam使用及出现的问题

    从问题开始 1.问题 应放位置: 报错改变: 问题还是头文件。尝试: 解决,但是是将sam转为ba...

  • sqoop导出时拒绝链接

    使用sqoop导入导出时总是拒绝连接。 排查问题,发现每次启动sqoop脚本进行工作时,MySQL服务会自动关闭。...

网友评论

      本文标题:Sqoop简单使用及出现的问题

      本文链接:https://www.haomeiwen.com/subject/fbhqxftx.html