使用 jceks 密码文件的 Hadoop 凭证

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

使用以下命令创建 hadoop 凭证时:

hadoop credential create mysql.password -provider jceks://file/home/mahadev.duary/credential.jceks 

显示以下错误:[mahadev.duary@ip-10-0-20-183 ~]$ hadoop credential create mysql.banking.password -provider jceks://home/mahadev.duary/credential.jceks SLF4J:类路径包含多个 SLF4J 绑定。 SLF4J:在 [jar:file:/usr/lib/hadoop/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] 中找到绑定 SLF4J:在 [jar:file:/usr/share/aws/emr/emrfs/lib/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class] 中找到绑定 SLF4J:请参阅 http://www.slf4j.org/codes.html#multiple_bindings 了解说明。 SLF4J:实际绑定的类型为 [org.slf4j.impl.Log4jLoggerFactory] org.apache.hadoop.fs.UnsupportedFileSystemException:方案“home”没有文件系统 在 org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:3273) 在 org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3293) 在 org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:120) 在 org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3344) 在 org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3312) 在 org.apache.hadoop.fs.FileSystem.get(FileSystem.java:478) 在 org.apache.hadoop.fs.Path.getFileSystem(Path.java:361) 在 org.apache.hadoop.security.alias.JavaKeyStoreProvider.initFileSystem(JavaKeyStoreProvider.java:89) 在 org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider。(AbstractJavaKeyStoreProvider.java:85) 在 org.apache.hadoop.security.alias.JavaKeyStoreProvider.(JavaKeyStoreProvider.java:49) 在 org.apache.hadoop.security.alias.JavaKeyStoreProvider.(JavaKeyStoreProvider.java:41) 在 org.apache.hadoop.security.alias.JavaKeyStoreProvider$Factory.createProvider(JavaKeyStoreProvider.java:100) 在 org.apache.hadoop.security.alias.CredentialProviderFactory.getProviders(CredentialProviderFactory.java:73) 在 org.apache.hadoop.security.alias.CredentialShell$Command.getCredentialProvider(CredentialShell.java:193) 在 org.apache.hadoop.security.alias.CredentialShell$CreateCommand.validate(CredentialShell.java:357) 在 org.apache.hadoop.security.alias.CredentialShell.run(CredentialShell.java:81) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) 在 org.apache.hadoop.security.alias.CredentialShell.main(CredentialShell.java:472)

https://i.stack.imgur.com/4sWTa.png

https://i.stack.imgur.com/SBJKO.png

hadoop
1个回答
0
投票

错误的结尾表明您尚未在 core-site.xml 中配置提供程序。请参阅有关配置的文档 - https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/CredentialProviderAPI.html

如果您想配置一些 hadoop 客户端(例如 Spark 或 Sqoop),那么您应该将凭证文件放置在共享位置(例如 S3),然后您可以根据文档使用像

jcecks://s3@
这样的路径

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