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
可能是什么原因。
答案 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安全性,创建单独的用户并显式传递用户名密码或创建单独的凭证文件。