hadoop%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C" style="text-align:center;">hadoop文件操作
目录
hadoop%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C-toc" style="margin-left:0px;">
一、文件的上传 删除 查看
1.整体代码
2.代码运行
3.查看证实
4.具体代码解析
1)向Hadoop传文件
2)向本地Windows传文件
3)删除Hadoop的文件
4)判断文件是否存在
二、列出文件
1.整体代码
2.代码运行
3.具体代码解析
1)获取块大小
2)获取副本数:
3)获取块位置
4)获取文件路径
一、文件的上传 删除 查看
1.整体代码
package com.pracle.example;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class Test4 {public static void main(String[] args) throws URISyntaxException, IOException {Configuration configuration=new Configuration();FileSystem fs = FileSystem.get(new URI("hdfs://192.168.67.90:9000"), configuration);//向Hadoop传文件fs.copyFromLocalFile(new Path("d:/aa.txt"),new Path("/cc.txt"));//向本地传文件fs.copyToLocalFile(new Path("/cc.txt"),new Path("d:/ee.txt"));//删除Hadoop中的文件fs.delete(new Path("/c.txt"),true); // true 递归删除
// fs.exists(new Path("/a.txt"));判断文件是否存在if(fs.exists(new Path("/a.txt"))){System.out.println("文件存在");}
}
}
2.代码运行
3.查看证实
4.具体代码解析
1)向Hadoop传文件
fs.copyFromLocalFile(new Path("d:/aa.txt"),new Path("/cc.txt"));
2)向本地Windows传文件
fs.copyToLocalFile(new Path("/cc.txt"),new Path("d:/ee.txt"));
3)删除Hadoop的文件
fs.delete(new Path("/c.txt"),true);
4)判断文件是否存在
if(fs.exists(new Path("/a.txt"))){System.out.println("文件存在");}
二、列出文件
1.整体代码
package com.pracle.example;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;public class Test5 {public static void main(String[] args) throws URISyntaxException, IOException {Configuration configuration=new Configuration();FileSystem fs = FileSystem.get(new URI("hdfs://192.168.67.90:9000"), configuration);RemoteIterator<LocatedFileStatus> it = fs.listFiles(new Path("/"), true);while (true){if(it.hasNext()){LocatedFileStatus next = it.next();System.out.println(next.getBlockSize()+" "+next.getReplication()+" "+next.getBlockLocations()+" "+next.getPath());}else {break;}}}
}
2.代码运行
3.具体代码解析
1)获取块大小
next.getBlockSize()
2)获取副本数:
next.getReplication()
3)获取块位置
next.getBlockLocations()
4)获取文件路径
next.getPath()