HadoopWebHDFSJava客户端api支持ssl和基本身份验证

pobjuy32  于 2021-06-03  发布在  Hadoop
关注(0)|答案(0)|浏览(310)

我有一个使用 spring-yarn-boot:2.2.0.RELEASE 访问hadoop文件系统(hdfs)。我所做的工作是 LISTSTATUS , GETFILESTATUS 以及 OPEN (读取文件)。hdfs uri是通过application.properties指定的:

spring.hadoop.fsUri=webhdfs://127.0.0.1:50070/webhdfs/v1/

我创建了一个bean,为其提供hadoop配置(spring在启动时自动为我做准备):

SimplerFileSystem fs = new SimplerFileSystem(FileSystem.get(configuration));
FsShell shell = new FsShell(configuration);

一切正常,但问题来了,因为我有两个新的要求。
首先,从现在起hdfs将受到ssl的保护。我似乎找不到任何方法告诉我的应用程序,以webhdfs://开头的fsuri实际上是一个https连接。如果我直接给出https网址,我会得到一个例外:

java.io.IOException: No FileSystem for scheme: https
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584)

... 这是由该代码引起的: FileSystem.get(configuration). 这件事快把我逼疯了,我好像找不到办法通过这个。
第二个要求是,我需要用基本的身份验证对webhdfs进行身份验证。为此,我在客户端api中也找不到任何方法。
以前有没有人做过,有什么指示可以分享?或者可能有人知道一个不同的客户端api,我可以用它来完成这个任务?
一种选择是自己用restemplate或任何其他rest服务使用者api实现rest调用,但这看起来并不是什么特别的用例,所以我真的希望已经有一些事情做了。
编辑:
找到了https问题的解决方案。一个人应该使用 swebhdfs:// 作为url前缀,一切正常。仍然没有找到解决基本身份验证问题的方法。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题