我试图设置Hadoop服务器和客户端。
下面是我的kms.site.xml
<property>
<name>hadoop.kms.key.provider.uri</name>
<value>jceks://file@/${user.home}/kms.keystore</value>
<description>
URI of the backing KeyProvider for the KMS.
</description>
</property>
<property>
<name>hadoop.security.keystore.java-keystore-provider.password-file</name>
<value>kms.keystore.password</value>
<description>
If using the JavaKeyStoreProvider, the file name for the keystore password.
</description>
</property>在下面添加的core-site.xml中
<property>
<name>dfs.encryption.key.provider.uri</name>
<value>kms://http@mydomain:16000/kms</value>
</property>在hdfs中添加了以下站点
<property>
<name>dfs.encryption.key.provider.uri</name>
<value>kms://http@mydomain:16000/kms</value>
</property>然后重新启动hadoop并使用./kms.sh开始启动kms。
但是当我试图使用下面的命令生成一个键时
hadoop key create key_demo -size 256我收到了下面的留言,我有遗漏什么吗?
There are no valid (non-transient) providers configured.
No action has been taken. Use the -provider option to specify
a provider. If you want to use a transient provider then you
MUST use the -provider argument.发布于 2021-12-19 11:04:49
我正在使用hadoop 3.3.1
这是我的kms-site.xml
<property>
<name>hadoop.kms.key.provider.uri</name>
<value>jceks://file@/${user.home}/kms.keystore</value>
</property>
<property>
<name>hadoop.security.keystore.java-keystore-provider.password-file</name>
<value>kms.keystore.password</value>
</property>这是我的core-site.xml
<property>
<name>hadoop.security.key.provider.path</name>
<value>kms://http@localhost:9600/kms</value>
<description>
The KeyProvider to use when interacting with encryption keys used
when reading and writing to an encryption zone.
</description>
</property>在将这些内容添加到我的核心-site.xml之前,我还会得到与您相同的消息。我认为您正在使用hadoop v2,所以您的keyProvider端口号仍然是16000,我使用的是v3。我还看到,您仍然在使用JavaKeyStoreProvider,就像hadoop文档中的示例(我也是),如果您不提供“密码文件”(即kms.keystore.password ),那么KMS将在启动后立即终止。因此,需要在类路径中放置一个空文件,该文件位于/hadoop_home/etc/中。
我知道我到得很晚,希望能帮上忙。
https://stackoverflow.com/questions/61394730
复制相似问题