簡體   English   中英

sqoop - 連接到 oracle 並將數據導入 IBM BigInsights 中的 HDFS

[英]sqoop - connect to oracle and import data to HDFS in IBM BigInsights

我想連接到我的數據庫(oracle 10g)並將數據導入HDFS 我正在使用 IBM 大洞察平台。

但是當我使用以下命令時:

sqoop import --connect jdbc:oracle:thin://<IP>:1521/DB--username xxx --password xxx--table t /lib/sqoop/sqoopout 

運行 Sqoop 時出現異常:

java.lang.RuntimeException:無法加載數據庫驅動程序類:oracle.jdbc.OracleDriver

java.lang.RuntimeException:無法加載數據庫驅動程序類:oracle.jdbc.OracleDriver

在 org.apache.sqoop.manager.OracleManager.makeConnection(OracleManager.java:286) 在 org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)

在 org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:752) 在 org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:775) 在 org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery (SqlManager.java:270) at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:241) at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:227) at org.apache。 sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:295) at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1833) at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java: 1645) 在 org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107) 在 org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478) 在 org.apache.sqoop.tool.ImportTool .run(ImportTool.java:605) at org.apache.sqoop.Sqoop.run(Sqoop.java:143) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache。 sqoop.Sqoop.runSqoop(Sqoop.java:179) 在 org.apache.sqoop.Sqoop.runTool(Sqoop. java:218) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) 在 org.apache.sqoop.Sqoop.main(Sqoop.java:236)

我也復制ojdbc6_g.jar在sqoop / lib目錄下。 請幫我解決我可以將數據導入HDFS的問題。

您使用的是什么版本的 BigInsights? 您是否在所有節點中加載了 Oracle odbc jar? Sqoop 在內部觸發將從數據節點運行的 Map 作業。

要從oracle 數據庫中sqoop 數據,首先需要下載ojdbc jar 並將其放入sqoop lib 文件夾中。 下載 OJDBC jar 的鏈接是:

https://mvnrepository.com/artifact/ojdbc/ojdbc/14 https://mvnrepository.com/artifact/com.oracle/ojdbc14/10.2.0.2.0

除此之外,用於從 ojdbc 導入數據的 sqoop 命令是:

sqoop import --connect jdbc:oracle:thin:@127.0.0.1:1521:XE --username ***** --password ****** --table table_name --columns "COL1, COL2, COL3, COL4, COL5" --target-dir /xyz/zyx -m 1 

這里可以關注--connect工具,使用的連接字符串格式為:

jdbc:oracle:thin:@ip_address:port_number:SID

允許的第二種格式是:

jdbc:oracle:thin:@ip_address:port_number/service_name

希望這可以幫助。

PS - 如果您無法將 OJDBC jar 添加到 sqoop 的 lib 中,您還可以將 Jar 文件的路徑附加到 $HADOOP_CLASSPATH 變量中。

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/root/shared_folder/ojdbc6.jar

PPS - 在執行前將 ojdbc jar chmod 為 777。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM