我正在尝试在空目录/enc_zone2 中创建一个加密区域。这是我正在使用的命令
hdfs crypto -createZone -keyName key2 -path /enc_zone2
当我尝试使用
hadoop key list -metadata
我能够看到 key2 的元数据。
但是,我在创建区域时遇到的错误是
"RemoteException: Can't create an encryption zone for /temp since no key provider is available."
但是,KMS 服务器已在端口 16000 中启动并运行。此外,列出键和列出区域的命令正在工作,这意味着密钥提供程序正在工作。
这是名称节点的错误日志
Can't create an encryption zone for /enc_zone2 since no key provider is available.
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.createEncryptionZone(FSNamesystem.java:7981)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.createEncryptionZone(NameNodeRpcServer.java:1833)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.createEncryptionZone(ClientNamenodeProtocolServerSideTranslatorPB.java:1352)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2045).
谁能帮我?
谢谢。
Rajkamal 在我的情况下,即使我遇到了同样的问题,但是在 hdfs-site.xml 中添加了以下属性后。我能够创建加密区域。
<property>
<name>dfs.encryption.key.provider.uri</name>
<value>kms://http@localhost:16000/kms</value>
</property>
添加属性后,请重新启动 kms 服务器和 hadoop 服务。
尝试并验证此解决方案是否适用于您的情况。