我想连接到我的数据库(oracle 10g)并将数据导入 HDFS
. 我正在使用IBM大型Insight平台 .
但是当我使用下面的命令:
sqoop import --connect jdbc:oracle:thin://<IP>:1521/DB--username xxx --password xxx--table t /lib/sqoop/sqoopout
运行Sqoop时异常:
java.lang.RuntimeException:无法加载db驱动程序类:oracle.jdbc.OracleDriver java.lang.RuntimeException:无法在org.apache.sqoop.manager.OracleManager.makeConnection中加载db驱动程序类:oracle.jdbc.OracleDriver( OracleManager.java:286)org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:752)atg.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.orm.ClassWriter的org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:295) . org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1645)中的getColumnTypes(ClassWriter.java:1833)org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenT) ool.java:107)org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478)位于org.apache.sqoop的org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605) .sqoop.run(Sqoop.java:143)org.apache.hadoop.util.ToolRunner.run(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)
我也复制了sqoop / lib中的 ojdbc6_g.jar . 请帮我解决我可以将数据导入HDFS的问题 .
2 回答
您使用的是什么版本的BigInsights?您是否在所有节点中加载了Oracle odbc jar? Sqoop在内部触发将从datanode运行的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命令是:
在这里你可以注意--connect工具,使用的连接字符串格式如下:
允许的第二种格式是:
希望这可以帮助 .
附: - 如果您无法将OJDBC jar添加到sqoop的lib中,您还可以将Jar文件的路径附加到$ HADOOP_CLASSPATH变量 .
P.P.S - 在执行之前chmod将ojdbc jar改为777 .