Sqoop 连接到 SQL Server

Posted

技术标签:

【中文标题】Sqoop 连接到 SQL Server【英文标题】:Sqoop connecting to SQL Server 【发布时间】:2014-04-16 00:02:24 【问题描述】:

我正在尝试从 Sqoop 连接到 SQL 服务器。我收到此错误。我可以将连接器文件中的值更改为 com.microsoft.sqoop.SqlServer.MSSQLServerManagerFactory=/usr/lib/sqoop/lib/sqoop-sqlserver-1.0.jar

但是您能否让我知道为什么我也收到 class not found 错误。

14/04/15 16:59:37 ERROR sqoop.ConnFactory: Error loading ManagerFactory information from file /usr/lib/sqoop/conf/managers.d/mssqoop-sqlserver: java.io.IOException: the content of connector file must be in form of key=value
        at org.apache.sqoop.ConnFactory.addManagersFromFile(ConnFactory.java:219)
        at org.apache.sqoop.ConnFactory.loadManagersFromConfDir(ConnFactory.java:294)
        at org.apache.sqoop.ConnFactory.instantiateFactories(ConnFactory.java:85)
        at org.apache.sqoop.ConnFactory.<init>(ConnFactory.java:62)
        at com.cloudera.sqoop.ConnFactory.<init>(ConnFactory.java:36)
        at org.apache.sqoop.tool.BaseSqoopTool.init(BaseSqoopTool.java:225)
        at org.apache.sqoop.tool.ImportTool.init(ImportTool.java:84)
        at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:490)
        at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:222)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:231)
        at org.apache.sqoop.Sqoop.main(Sqoop.java:240)

14/04/15 16:59:37 WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
14/04/15 16:59:37 INFO manager.SqlManager: Using default fetchSize of 1000
14/04/15 16:59:37 INFO tool.CodeGenTool: Beginning code generation
14/04/15 16:59:37 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:772)
        at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
        at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:660)
        at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:683)
        at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:240)
        at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:223)
        at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:347)
        at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1298)
        at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1110)
        at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:96)
        at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:396)
        at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:502)
        at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:222)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:231)
        at org.apache.sqoop.Sqoop.main(Sqoop.java:240)

【问题讨论】:

【参考方案1】:

在Xplenty 中,我们使用 Sqoop 将数据移入和移出各种 RDBMS。我们必须将 SQL Server JDBC 驱动程序添加到 /usr/lib/sqoop/lib。见这里:http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx

【讨论】:

以上是关于Sqoop 连接到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

Sqoop 和 hive 连接到 sqlserver

如何解决SQL Server 2008 无法连接到

SQL SERVER2008无法连接到服务器

ODBC无法连接SQL SERVER

java - 如何在java jdbc中使用sqoop从sql server导入hive?

通过 ODBC 连接连接到 Sql Server CE