使用密码文件的 Hadoop 凭证

问题描述 投票:0回答:1

我正在查看 Hadoop Credentials 的文档,如 https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/CredentialProviderAPI.html

但是,当使用第三个选项使用密码文件为梯形校正提供密码时,我每次都会失败。下面提供了所用命令的摘录。谁能告诉我错误是什么以及如何纠正。

hadoop credential -Dhadoop.security.credstore.java-keystore-provider.password-file=/home/dir/test.txt create mssql2.password -value 'SomePassword' -provider localjceks://file/home/dir/aws3.jceks

错误如下:

java.io.IOException: Password file does not exist
    at org.apache.hadoop.security.ProviderUtils.locatePassword(ProviderUtils.java:135)
    at org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider.locateKeystore(AbstractJavaKeyStoreProvider.java:323)
    at org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider.<init>(AbstractJavaKeyStoreProvider.java:86)
    at org.apache.hadoop.security.alias.LocalJavaKeyStoreProvider.<init>(LocalJavaKeyStoreProvider.java:58)
    at org.apache.hadoop.security.alias.LocalJavaKeyStoreProvider.<init>(LocalJavaKeyStoreProvider.java:50)
    at org.apache.hadoop.security.alias.LocalJavaKeyStoreProvider$Factory.createProvider(LocalJavaKeyStoreProvider.java:177)
    at org.apache.hadoop.security.alias.CredentialProviderFactory.getProviders(CredentialProviderFactory.java:58)
    at org.apache.hadoop.security.alias.CredentialShell$Command.getCredentialProvider(CredentialShell.java:181)
    at org.apache.hadoop.security.alias.CredentialShell$CreateCommand.validate(CredentialShell.java:345)
    at org.apache.hadoop.security.alias.CredentialShell.run(CredentialShell.java:81)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.security.alias.CredentialShell.main(CredentialShell.java:460)
hadoop
1个回答
0
投票

问题是,此属性需要文件名而不是文件路径,然后 Hadoop api 将在 Hadoop 类路径上搜索此名称。由于该文件包含明文,因此另一种方法是

export HADOOP_CREDSTORE_PASSWORD=${PASSWORD}

© www.soinside.com 2019 - 2024. All rights reserved.