小编Dmi*_*erg的帖子

尝试与 kerberized Hadoop 集群通信时“客户端和服务器之间没有通用的保护层”

我正在尝试以编程方式与 kerberized (CDH 5.3/HDFS 2.5.0) 的 Hadoop 集群通信。

我在客户端有一个有效的 Kerberos 令牌。但是我收到如下错误,“客户端和服务器之间没有通用的保护层”。

这个错误是什么意思,有什么方法可以修复或解决它?

这与HDFS-5688 有关吗?票似乎暗示必须设置属性“hadoop.rpc.protection”,大概是“身份验证”(也根据例如this)。

这是否需要在集群中的所有服务器上设置,然后集群反弹?我无法轻松访问集群,因此我需要了解“hadoop.rpc.protection”是否是真正的原因。似乎 'authentication' 应该是默认使用的值,至少根据 core-default.xml 文档。

java.io.IOException: 本地异常失败:java.io.IOException: 无法设置 principal1/server1.acme.net@xxx.acme.net 到 server2.acme.net/10.XX.XXX.XXX 的连接:8020; 主机详细信息:本地主机为:“some-host.acme.net/168.XX.XXX.XX”;目标主机是:“server2.acme.net”:8020;

    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)

    at org.apache.hadoop.ipc.Client.call(Client.java:1415)

    at org.apache.hadoop.ipc.Client.call(Client.java:1364)

    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)

    at com.sun.proxy.$Proxy24.getFileInfo(Unknown Source)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:498)

    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)

    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)

    at com.sun.proxy.$Proxy24.getFileInfo(Unknown Source)

    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:707)

    at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1785)

    at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1068)

    at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1064)

    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)

    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1064)

    at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1398)

    ... 11 more
Run Code Online (Sandbox Code Playgroud)

引起:java.io.IOException: 无法设置 principal1/server1.acme.net@xxx.acme.net 到 server2.acme.net/10.XX.XXX.XXX:8020 …

hadoop kerberos hdfs cloudera-cdh

2
推荐指数
1
解决办法
6495
查看次数

标签 统计

cloudera-cdh ×1

hadoop ×1

hdfs ×1

kerberos ×1