引言 :
我在使用IDEA编辑器对hadoop进行操作时,发现操作端的hadoop操作不产生tmp文件夹。
那文件在哪存储呢?
原因:
在使用 IDEA编辑器 测试hadoop的时候,会使用到 LocalFileSystem。
即使是操作两个集群(使用distcp跨集群拷贝)也会使用LocalFileSystem进行集群进行部分操作。
比如生成序列文件,生成metaDataFolder等,这也就是为什么在使用编辑器操作hadoop时,复制文件的集群不生成tmp目录以及序列化文件的原因
相关实验
获取本地文件系统的方法
final Configuration conf = new Configuration();
conf.set("fs.defaultFS", "file:///"); //获取本地文件系统
final FileSystem fileSystem = FileSystem.get(conf);
从下列的实验分析猜测
@Test
public void test04() throws IOException{
final Configuration conf = new Configuration();
conf.set("fs.defaultFS", "file:///");
final FileSystem fileSystem = FileSystem.get(conf);
System.out.println(fileSystem.getWorkingDirectory()); //file:/E:/WorkSpace/IDEAWorkspace/MapReduce/learn
System.out.println(fileSystem.getHomeDirectory()); //file:/C:/Users/User
final FileStatus[] fileStatuses = fileSystem.listStatus(new Path("/")); //列出的全是 "E://"下的文件
Arrays.stream(fileStatuses).forEach(e -> {
System.out.println(e.getPath());
});
}
默认的本地文件系统的根目录是:工作目录(代码编写所在的位置)所在盘符的根
e.g.
工作目录 E:/WorkSpace/IDEAWorkspace/MapReduce/learn
根目录:E:/
可以看出他没有使用家目录地址作为根目录,而是使用工作空间的地址
所以MapReduce生成的文件所在/tmp
目录的路径应为 E:/tmp