首页 > 解决方案 > 使用 polybase 从 sql server 创建外部表到 hadoop 的问题

问题描述

我们最近在 SQL Server 中安装了 Polybase。我们正在尝试使用 Hortonworks 来获取数据。我在创建外部表时面临以下问题。

Msg 105019, Level 16, State 1, Line 1 
EXTERNAL TABLE access failed due to internal error: 'Java exception raised on call to HdfsBridge_IsDirExist:  
Error [End of File Exception between local host is: "xxxxx"; destination host is: "xxxxx":1111; :  
java.io.EOFException; For more details see:  http://wiki.apache.org/hadoop/EOFException] occurred while accessing external file.'

我尝试core-site.xml通过取消注释 Kerberos 选项来更改 SQL Server polybase 位置中的文件,该选项现在给我以下错误:

Msg 105019, Level 16, State 1, Line 1
EXTERNAL TABLE access failed due to internal error: 'Java exception raised on call to HdfsBridge_Connect: 
Error [Unable to instantiate LoginClass] occurred while accessing external file.'

我怀疑这可能与创建数据库范围的凭据有关。

CREATE DATABASE SCOPED CREDENTIAL HadoopUser3
WITH IDENTITY = '<user>', Secret = '<Passw0rd>';  
go

有人可以帮我理解我在身份和秘密方面遇到的问题。它与 Hadoop 凭据有关吗?我们必须提供什么样的秘密?

标签: sql-serverhadoopsql-server-2016hortonworks-data-platformpolybase

解决方案


几件事情要检查:

在您的 core-site.xml 文件中,尝试将 hadoop.security.authentication 设置为小写“kerberos”。此外,请确保您已添加 polybase.kerberos.realm 和 polybase.kerberos.kdchost

确保您创建的数据源对您的 HDFS 集群使用正确的 LOCATION=。确保这是 IP 地址:端口,而不是服务器本身的名称

检查外部表并确保您拥有集群物理文件本身的正确路径。


推荐阅读