hadoop文件操作
目录
一、文件的上传 删除 查看
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()