概述
准备配置文件工作: 1. hdfs-site.xml , core-site.xml 从【集群中下载】 2. hadoop.keytab 【创建kerberos访问的用户生成】 3. krb5.conf 【配置Kerberos生成】 pom需要的依赖: <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> </dependency> </dependencies> 具体的代码实现 package com.cib.feilong.kerber; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.security.UserGroupInformation; /** * JAVA 代码通过Kerberos连接HDFS * * @author songzhan * @version 1.0 * @date 2022/1/14 */ public class Test { public static void main(String[] args) throws Exception { String user = "hadoop"; String keytab = "/home/hadoop/hadoop.keytab"; String path = "/tmp/"; Configuration conf = new Configuration(); conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem"); System.setProperty("java.security.krb5.conf", "/etc/krb5.conf"); UserGroupInformation.setConfiguration(conf); UserGroupInformation.loginUserFromKeytab(user, keytab); FileSystem fileSystem = FileSystem.get(conf); boolean exists = fileSystem.exists(new Path(path)); // TODO 判断tmp目录是否存在,如果存在返回True,如果不存在返回False System.out.println("exists:{}" + exists); } }
最后
以上就是动人小鸭子为你收集整理的Java代码通过Kerberos连接HDFS的全部内容,希望文章能够帮你解决Java代码通过Kerberos连接HDFS所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复