使用 sqoop 将数据从 oracle 导入到 hdfs

Posted

技术标签:

【中文标题】使用 sqoop 将数据从 oracle 导入到 hdfs【英文标题】:data import from oracle to hdfs with sqoop 【发布时间】:2016-06-27 14:03:42 【问题描述】:

您好,我在尝试使用 sqoop 将数据从 Oracle 导入 HDFS 时遇到以下错误。 使用的命令-

sqoop import --connect jdbc:oracle:thin:sys/Welcome123@192.168.41.1:1521:orcl --username tgthr -P --table transactions --columns "tid,accounid,amount" --m 1

错误日志-

    cloudera@cloudera-vm:~$ sqoop import --connect jdbc:oracle:thin:sys/Welcome123@192.168.41.1:1521:orcl --username tgthr -P --table transactions --columns "tid,accounid,amount" --m 1
Enter password: 
16/06/27 05:34:51 INFO tool.CodeGenTool: Beginning code generation
16/06/27 05:34:53 ERROR manager.SqlManager: Error executing statement: java.sql.SQLRecoverableException: Io exception: The Network Adapter could not establish the connection
16/06/27 05:34:53 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException
java.lang.NullPointerException
    at com.cloudera.sqoop.orm.ClassWriter.generate(ClassWriter.java:935)
    at com.cloudera.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
    at com.cloudera.sqoop.tool.ImportTool.importTable(ImportTool.java:337)
    at com.cloudera.sqoop.tool.ImportTool.run(ImportTool.java:423)
    at com.cloudera.sqoop.Sqoop.run(Sqoop.java:144)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
    at com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:180)
    at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:218)
    at com.cloudera.sqoop.Sqoop.main(Sqoop.java:228)
cloudera@cloudera-vm:~$ 

【问题讨论】:

【参考方案1】:

嘿,它对我有用。

sqoop import --connect jdbc:oracle:thin:@[ORACLE_SERVER_IP]:1521:orcl --username [ORACLE_USERNAME] --password [ORACLE_PASSWORD] --table [TABLE_NAME] -target-dir [/tmp/myoutput]

注意-->避免使用括号。它对于 oracle 所以对于其他数据库的连接字符串会改变。

另外,“orcl”是我的实例名称,1521是oracle中的端口,请检查后再导入。

例子-->

sqoop import --connect jdbc:oracle:thin:@IP:1521:orcl --username user1 --password Password1 --table MYTAB -target-dir /tmp/myoutput/

表名应为大写。

【讨论】:

以上是关于使用 sqoop 将数据从 oracle 导入到 hdfs的主要内容,如果未能解决你的问题,请参考以下文章

sqoop从oracle导数据后是空表

使用 sqoop 从 Oracle 到 hive 的日期导入问题

sqoop 从oracle抽数据是 sql怎么写

我用sqoop从oracle导入数据到hdfs时,总是报 表或视图不存在错误,求解答...

sqoop从oracle数据库抽取数据,导入到hive

Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入导出