一、前言
今天将自己的程序部署到生产环境中,发现执行 hdfs 相关操作时报错了。原来是测试环境是 nameNode 单节点,生产环境上是 nameNode HA 。
自己写的 hdfs 连接不适配 nameNode HA 。就很烦躁,还得增加工作量来改代码。
以前的代码如下图所示:
1
2
3
4
5
org.apache.hadoop
hadoop-hdfs
2.6.0-cdh5.11.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14private static Configuration conf = new Configuration();
private static FileSystem fs;
/**
* 初始化 HDFS transportClient 连接
*/
public static void initConn(){
// 获取配置
try {
fs = FileSystem.get(URI.create("hdfs://cdh-master-1:8020"), conf, "hdfs");
} catch (Exception e) {
log.error("HDFS Client Configuration Initialization exception: ", e