2016-04-19 3 views
-1

Я хочу подключиться к своей базе данных (oracle 10g) и импортировать данные в HDFS. Я использую IBM Insight Platform.sqoop - подключиться к oracle и импортировать данные в HDFS в IBM BigInsights

но когда я использую следующую команду:

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

Got исключение работает Sqoop:

java.lang.RuntimeException: Не удалось загрузить драйвер дб класс: oracle.jdbc.OracleDriver

java.lang.RuntimeException: Не удалось загрузить класс драйвера db: 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) на org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery (SqlManager.java:241) на org.apache.sqoop.manager.SqlManager.getColumnTypes (SqlManager.java:227) на org.apache.sqoop.manager.ConnManager.getColumnTypes (ConnManager.java:295) на org.apache.sqoop.orm.ClassWriter.getColumnTypes (ClassWriter.java:1833) в 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) на org.apache.sqoop.Sqoop.run (Sqoop.java:143) на org.apache.hadoop.util.ToolRunner. (ToolRunner.java:70) в 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.

+0

Это сообщение может помочь: http://stackoverflow.com/questions/22741183/sqoop-could-not-load-mysql-driver-exception – markwatsonatx

+0

Получаете ли вы такое же поведение, используя LOAD HADOOP? –

ответ

0

Какую версию BigInsights вы используете? Загрузили ли вы Oracle odbc jar во всех узлах? Sqoop внутренне запускает задание Map, которое будет выполняться из datanodes.

0

Для данных sqoop из базы данных oracle в первую очередь вам необходимо загрузить банку ojdbc и поместить ее в папку sqoop lib.Ссылка для скачивания баночки OJDBC является:

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

Помимо этого команда sqoop для импорта данных из ojdbc является:

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 

себе cond, который разрешен:

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

Надеюсь, это поможет.

P.S. - Если вы не можете добавить банку OJDBC в sqoop`s lib, вы также можете добавить путь к файлу Jar в переменную $ HADOOP_CLASSPATH.

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

P.P.S - chmod ojdbc jar to 777 перед выполнением.