复制代码1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55准备配置文件工作: 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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复