Sqoop无法从Sql Server导入数据

时间:2016-08-10 07:07:03

标签: sql-server hadoop import sqoop

public int executeNonQuery(string sql, params object[] parameters) { var traceI = Traceadd(sql, parameters); if (!open()) throw new Exception("Error executing query!", lastException); try { command = Connection.CreateCommand(); command.CommandText = sql; sql.SQLFormat(ref command, parameters); var res = command.ExecuteNonQuery(); command.Parameters.Clear(); if (traceI != null) traceI.Stop(); return res; } catch (Exception ex) { if (traceI != null) traceI.Stop(); throw new DBException(command.CommandText, command.Parameters, ex); } }

错误1:

  

- 将驱动程序设置为显式驱动程序,但未设置适当的连接管理器(通过--connection-manager).Sqoop将   回到sqoop import --driver="com.microsoft.jdbc.sqlserver.SQLServerDriver" --connect="jdbc:microsoft:sqlserver://**.**.**.** :1433/DB_Schema;Integrated Security=TRUE" --table dbo.TABLE_NAME。请   明确指定下次应该使用哪个连接管理器。

错误2:

  

运行Sqoop异常:java.lang.RuntimeException:无法加载   db驱动程序类:org.apache.sqoop.manager.GenericJdbcManager

  • Sqoop版本:Sqoop 1.4.6
  • Hadoop版本:Hadoop 2.6.0
  • Java版本:1.7.0_51
  • SQL jar:sqljdbc4.jar

可能是什么原因。

2 个答案:

答案 0 :(得分:1)

  

关于错误1

这不仅仅是警告错误。 org.apache.sqoop.manager.GenericJdbcManager适用于SQL Server。

  

关于错误2

确保您在sqljdbc4.jar

中添加了sqoop/lib

答案 1 :(得分:0)

错误1 - 不是错误。

错误2 - 用于访问MS SQL Server数据库Sqoop需要一个可从Microsoft下载的其他JDBC驱动程序。以下步骤将MSSQL Server JDBC驱动程序安装到Sqoop:

wget 'http://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/sqljdbc_4.0.2206.100_enu.tar.gz'

tar -xvzf sqljdbc_4

cp sqljdbc_4.0/enu/sqljdbc4.jar /usr/hdp/current/sqoop-server/lib/

除了你使用集成安全性之外,据我所知,Sqoop for Sql Server不支持它,所以你会得到错误3 。您必须使用SQL Server安全性,创建单独的用户并显式传递用户名密码或创建单独的凭证文件。