首页 文章

Kerberos身份验证错误 - Sqoop通过Hive从SQL导入HDFS

提问于
浏览
0

我给出了以下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

EDIT

上述错误的解决方案是将 authenticationScheme=JavaKerberos 添加到连接字符串 .

对于Eg:

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)

给我一个啤酒家伙!

1 回答

  • 3

    我认为这是一个防火墙问题 .

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

    解:

    运行此sqoop作业时,只需关闭Windows防火墙作业[或]为此端口“1433”启用防火墙规则

    希望这对你真的很有帮助 .

相关问题