我想连接到我的数据库(oracle 10g)并将数据导入 HDFS
. 我正在使用ibm big 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:无法加载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.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条答案
按热度按时间7qhs6swi1#
要从oracle数据库获取sqoop数据,首先需要下载ojdbcjar并将其放入sqoop lib文件夹。下载ojdbc jar的链接是:
https://mvnrepository.com/artifact/ojdbc/ojdbc/14https用法:/mvnrepository.com/artifact/com.oracle/ojdbc14/10.2.0.2.0
除此之外,用于从ojdbc导入数据的sqoop命令是:
在这里您可以注意--connect工具,使用的连接字符串的格式如下:
允许的第二种格式是:
希望这有帮助。
p、 如果无法将ojdbcjar添加到sqoop的lib中,还可以将jar文件的路径附加到$hadoop\u classpath变量中。
p、 在执行之前,将ojdbc jar修改为777。
wfveoks02#
您使用的是什么版本的biginsights?您是否已在所有节点中加载了oracle odbc jar?sqoop在内部触发将从datanodes运行的Map作业。