-1

i want to connect to my database (oracle 10g) and import data to HDFS. i am using IBM big Insight Platform.

but when i use below command :

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

Got exception running Sqoop:

java.lang.RuntimeException: Could not load db driver class: oracle.jdbc.OracleDriver

java.lang.RuntimeException: Could not load db driver class: oracle.jdbc.OracleDriver

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

at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:752) at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:775) at 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) at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107) at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478) at 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) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) at org.apache.sqoop.Sqoop.main(Sqoop.java:236)

i also copy the ojdbc6_g.jar in sqoop/lib. please help me to solve the problem that i can import data to HDFS.

Mihriban Minaz
  • 3,043
  • 2
  • 32
  • 52
Hamed Tamadon
  • 69
  • 1
  • 7

2 Answers2

0

What version of BigInsights you are using ? Have you loaded the Oracle odbc jar in all the nodes ? Sqoop internally triggers the Map job that will be running from datanodes.

0

To sqoop data from oracle database first of all you need to download the ojdbc jar and put it into the sqoop lib folder. Link for downloading the OJDBC jar is :

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

Apart from that the sqoop command for importing data from ojdbc is :

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 

Here you can pay attention to the --connect tool, the connection string used has the format:

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

The second format that is allowed is:

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

Hope this helps.

P.S. - If you are unable to add the OJDBC jar to sqoop`s lib you can also append the path of Jar file to the $HADOOP_CLASSPATH variable.

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

P.P.S - chmod the ojdbc jar to 777 before execution.

Aman Saurav
  • 751
  • 9
  • 28