最近接手实习生写的一个项目A,主要是往HDFS里写文件,因为项目比较急所以代码写的很乱,我就顺便新建个项目B重构一下。
其中把对HDFS的操作封装成了一个类:
public class HDFS {
private static final String HDFS_ADDR = Config.HDFS_PATH;
private static FileSystem fs;
static {
Configuration configuration = new Configuration();
configuration.set("dfs.replication", Config.REPLICATION);
configuration.set("fs.defaultFS", HDFS_ADDR);
try {
fs = FileSystem.get(URI.create(HDFS_ADDR), configuration);
} catch (IOException e) {
e.printStackTrace();
}
}
private Path path;
private FSDataOutputStream out;
public HDFS(String file) {
if (file != null && file.length() > 0) {
init(file);
}
}
.....
}
供其他模块调用,我在重构时候基本就照搬了这一块,后来发现我的程序每次执行
new HDFS(string);
的时候就停止了,也没报错。
Debug的话在构造函数第一行打印语句都不执行,