有没有Spring支持wedhdfs?我没有在谷歌上找到任何有用的链接.
我想通过webhdfs连接到具有正常身份验证和kerberos身份验证的hadoop.春天是否支持这个?
任何有用的链接都会有所帮助.
谢谢
以下是非 hadoop 系统上的客户端代码,用于在安全的远程 HDFS 上执行操作。
Configuration conf = new
Configuration();
conf.set("hadoop.security.authentication", "kerberos");
conf.set("java.security.krb5.conf",krbPath);
conf.set("fs.defaultFS", "webhdfs://10.31.251.254:50070");
conf.set("fs.webhdfs.impl", org.apache.hadoop.hdfs.web.WebHdfsFileSystem.class.getName());
conf.set("com.sun.security.auth.module.Krb5LoginModule", "required");
conf.set("debug", "true");
conf.set("ticketCache", "DIR:/etc/");
System.out.print("Conf......");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab("Dummy@EXAMPLE.COM", keytab);
System.out.print("Obtained......");
URI uri = URI.create("webhdfs://Dummy:50070");
FileSystem fs = FileSystem.get(uri, conf);
if (fs.mkdirs(new Path("/testKerb2")))
System.out.print("Directory created...");
Run Code Online (Sandbox Code Playgroud)
我能够执行这些操作,但无法从 krb5.conf 中读取票证配置值。conf 文件中提到的票证生命周期为 1m,但代码生成了一张生命周期为 1d 的票证。而且票证也不会在配置的票证缓存中生成。
请帮助配置,以便代码从 krb5.conf 文件中读取并在配置的路径中生成票证。
在控制台 o/p 中跟随
*911 [main] DEBUG org.apache.hadoop.security.UserGroupInformation - hadoop login commit
912 [main] DEBUG org.apache.hadoop.security.UserGroupInformation - using kerberos user:hdfs/YYYY@EXAMPLE.COM
914 [main] INFO org.apache.hadoop.security.UserGroupInformation - Login successful for user …Run Code Online (Sandbox Code Playgroud)