一.将kerberos相关认证文件放到项目目录下:
xxxx.keytab,krb5.conf
二.pom.xml引入包:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.3</version>
</dependency>
三.验证方法:
private static void authKerberos(Configuration conf) throws IOException {
// kerberos配置文件路径。
String krb5File = "D:/code/maventest/src/main/resources/local/krb5.conf";
System.setProperty("java.security.krb5.conf", krb5File);
conf.set("hadoop.security.authentication", "kerberos");
UserGroupInformation.setConfiguration(conf);
// 用户验证,第一参是执行用户,第二参是keytab文件路径。
UserGroupInformation.loginUserFromKeytab("dw"
, "D:/code/maventest/src/main/resources/local/dw_host.keytab");
}
public static void main(String[] args) throws IOException {
// 创建配置文件
Configuration conf = new Configuration();
// kerberos认证,如果不需要kerberos可以注掉,我的集群是需要的
authKerberos(conf);
FileSystem fs = FileSystem.get(conf);
}