1 文档编写目的
做Hadoop应用开发的过程中,用户会有这样的需求,在同一个Java应用中同时访问安全和非安装的CDH集群。同一个Java应用即同一个进程同一个JVM,由于一些全局的变量可能会导致无法同时访问安全和非安全的集群。本篇文章Fayson介绍下如何使用Java代码同时访问安全和非安全的CDH集群。
- 内容概述
1.环境准备
2.示例代码准备及运行验证
3.总结
- 测试环境
1.RedHat7.2
2.非安全集群CDH6.1.0
3.安全集群CDH5.13.1
2 环境准备
1.分别从安全集群和非安全集群下载HDFS客户端配置,放在我们的Java工程中
2.在安全集群中导出一个keytab文件和krb5.conf文件至本地工程
3.在工程的pom.xml文件中添加HDFS Client依赖包
3 Java示例代码
在工程下创建MultipleClusterTest.java,内容如下:
package com.cloudera.hdfs.basic;
import com.cloudera.hdfs.utils.HDFSUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.security.UserGroupInformation;
import java.io.File;
import java.io.IOException;
import java.net.URI;
/**
* package: com.cloudera.hdfs.basic
* describe: Java客户端多集群访问操作(Kerberos和非Kerberos集群)
* creat_user: Fayson
* email: htechinfo@163.com
* creat_date: 2019/2/21
* creat_time: 上午10:44
* 公众号:Hadoop实操
*/
public class MultipleClusterTest