【问题标题】:Kerberos Authentication Error - Sqoop import from SQL into HDFS via HiveKerberos 身份验证错误 - Sqoop 通过 Hive 从 SQL 导入 HDFS
【发布时间】:2016-05-18 05:04:48
【问题描述】:

我给出以下 Sqoop 命令:

sqoop import \
    --connect "jdbc:sqlserver://ServerName:1433;databaseName=TESTDB;integratedSecurity=true" \
    --driver com.microsoft.sqlserver.jdbc.SQLServerDriver \
    --table dbo.test_table \
    --username hduser \
    -P \
    --hive-import \
    --create-hive-table \
    --hive-table test_table

并得到以下错误:

com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序不是 配置为集成身份验证。

java.lang.UnsatisfiedLinkError: java.library.path 中没有 sqljdbc_auth

编辑

上述错误的解决方法是在连接字符串中添加authenticationScheme=JavaKerberos

例如:

sqoop import \
    --connect "jdbc:sqlserver://server_name:1433;database=db_name;integratedSecurity=true;authenticationScheme=JavaKerberos" \
    --driver com.microsoft.sqlserver.jdbc.SQLServerDriver \
    --table Table_Name \
    --username username \
    -P \
    --target-dir /path/to/destination \
    --columns "col1, col2, col3" \
    --split-by col1 -m 4

现在我可以列出 SQL 服务器上的数据库和表了。到目前为止一切顺利。

但是,我收到了 Kerberos 身份验证错误!!!

引起:java.security.PrivilegedActionException:GSSException:否 提供的有效凭据(机制级别:未能找到任何 Kerberos tgt)

伙计们,给我来杯啤酒!!!

【问题讨论】:

  • 这是一个 Linux 服务器。在连接字符串中添加了 authenticationScheme=JavaKerberos。现在收到新错误,例如:检测到有缺陷的令牌。(机制级别:AP_REP 令牌 ID 不匹配!)

标签: java sql-server hive kerberos sqoop


【解决方案1】:

我认为这是防火墙问题。

原因:如果您使用此端口号'1433',则必须在 Windows 防火墙中启用此端口访问。

解决方案:

运行此 sqoop 作业时只需关闭 windows 防火墙 [或] 启用此端口 '1433' 的防火墙规则

希望这对你真的有帮助。

【讨论】:

  • 现在,命令运行没有错误,但我看不到在我的 hive 数据库中创建的表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-12
  • 2010-11-17
  • 1970-01-01
  • 2015-06-22
  • 2019-07-12
  • 1970-01-01
相关资源
最近更新 更多