Java SQOOP SQLSERVER未能加载驱动程序;未设置适当的连接管理器";

Java SQOOP SQLSERVER未能加载驱动程序;未设置适当的连接管理器";,java,sql-server,jdbc,hadoop,sqoop,Java,Sql Server,Jdbc,Hadoop,Sqoop,我下载了sqljdbc4.jar。我正在从存储jar的文件夹中调用类似的sqoop: sqoop列表表--驱动程序com.microsoft.jdbc.sqlserver.SQLServerDriver--连接jdbc:sqlserver://localhost:1433;用户=我;密码=我的密码-libjars=./sqljdbc4.jar 我收到以下警告和错误信息: 13/10/25 18:38:13 WARN sqoop.ConnFactory:参数--driver设置为显式驱动程序,但未

我下载了
sqljdbc4.jar
。我正在从存储jar的文件夹中调用类似的
sqoop

sqoop列表表--驱动程序com.microsoft.jdbc.sqlserver.SQLServerDriver--连接jdbc:sqlserver://localhost:1433;用户=我;密码=我的密码-libjars=./sqljdbc4.jar

我收到以下警告和错误信息:

13/10/25 18:38:13 WARN sqoop.ConnFactory:参数--driver设置为显式驱动程序,但未设置适当的连接管理器(通过--connection manager)。Sqoop将退回到org.apache.Sqoop.manager.GenericJdbcManager。请明确指定下次应使用哪个连接管理器。

13/10/25 18:38:13 INFO manager.SqlManager: Using default fetchSize of 1000
13/10/25 18:38:13 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.microsoft.jdbc.sqlserver.SQLServerDriver
java.lang.RuntimeException: Could not load db driver class: com.microsoft.jdbc.sqlserver.SQLServerDriver
    at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:727)
    at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
    at org.apache.sqoop.manager.SqlManager.listTables(SqlManager.java:418)
    at org.apache.sqoop.tool.ListTablesTool.run(ListTablesTool.java:49)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
更新

我更改了命令行以反映以下注释,但得到了相同的错误:

sqoop列表数据库-libjars=/jars/sqljdbc4.jar——连接jdbc:sqlserver://localhost:1433;用户=我;密码=密码

13/10/28 17:00:33 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.microsoft.sqlserver.jdbc.SQLServerDriver
java.lang.RuntimeException: Could not load db driver class: com.microsoft.sqlserver.jdbc.SQLServerDriver
    at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:727)
    at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
    at org.apache.sqoop.manager.CatalogQueryManager.listDatabases(CatalogQueryManager.java:57)
    at org.apache.sqoop.tool.ListDatabasesTool.run(ListDatabasesTool.java:49)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
当我查看
sqljdbc4.jar
的列表时,我确实看到了该路径中的类。。。是否有可能
libjars选项
没有完成我认为它应该做的事情?

根据,像
-libjars
这样的通用选项必须在工具特定选项之前出现:

通用Hadoop命令行参数:
(必须在任何特定于工具的参数之前)

-libjars
指定要包含在类路径中的逗号分隔的jar文件


在绝大多数情况下,不需要使用参数
——driver
,甚至更多会导致不良行为。我强烈建议您完全从命令行中删除此参数。查看博客文章了解更多详细信息

此外,您还指定了一个不存在的JDBC驱动程序类。正确的答案是:

com.microsoft.sqlserver.jdbc.SQLServerDriver
您可以在中看到它,而您正在指定

com.microsoft.jdbc.sqlserver.SQLServerDriver

注意
jdbc
sqlserver
包的顺序不同。这就是为什么建议不要使用
--driver
选项的原因之一。

您需要将
sqljdbc4.jar
放在
$SQOOP\u HOME/lib
中,并将
SQOOP-1.4.jar
或与
sqljdbc4.jar
一起使用的任何版本添加到
$HADOOP\u HOME/lib

我使用的是
Hadoop-2.2.0
,因此我将它放在
$Hadoop\u HOME/share/Hadoop/common/lib
目录中,并使用以下命令进行导入:

导出HCAT_HOME=/HOME/Kuntal/BIG_DATA/hive-0.12.0/hcatalog

(有时蜂巢的
HCatlog
需要
export
ed或
set

/sqoop导入--connect“jdbc:sqlserver://IP\实例;端口=1433;用户名=username;密码=password;数据库=database\u NAME”--表\u NAME--目标目录hdfs://localhost:50315/sqoop --m 1


有时您必须指定端口,否则默认值有效。希望您觉得它有用。

最近遇到了同样的问题。尽管文档中说它将获取额外的jar文件。问题是我认为是从Hadoop jar命令行选项传播的<代码>-libjars不是设置附加jar文件路径的可靠选项。 相反,选择
HADOOP\u CLASSPATH
选项来设置额外的jar文件

在我的例子中,我有多个不同版本的驱动程序JAR,但使用
-libjars
并不能正确地为我提取文件

为了解决这个问题,我指定

export HADOOP\u CLASSPATH=/$SQOOP\u HOME/.jar

这将确保加载正确的JAR文件。

谢谢@Jarek Jarcec Cecho-我删除了驱动程序设置,我仍然遇到同样的问题…我将更新我的问题以反映更改。更改为这个'com.microsoft.sqlserver.jdbc.SQLServerDriver'解决了我的问题…这让我发疯了。谢谢Hanks@Mark Rottveel。我试过了,但没有成功。我会更新我的问题。你解决了吗?