hdfs java操作
一般操作都是shell命令,记一下java操作
package hdfs;
import java.io.FileInputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.Trash;
import org.apache.hadoop.io.IOUtils;
public class HDFS{
public static void main(String[] args) throws Exception {
//http://www.baidu.com
final FileSystem fileSystem = FileSystem.get(new URI("hdfs://server4:9000"), new Configuration());
System.out.println("**************"+fileSystem.toString());
System.out.println("**************"+fileSystem.getClass());
//创建文件夹mkdirs
//fileSystem.mkdirs(new Path("mydir"));
//fileSystem.mkdirs(new Path("/dir2"), new FsPermission("111"));
//上传文件create
//final FSDataOutputStream out = fileSystem.create(new Path("/dir1/file1"), true, 1024000, (short)2, 1048576);
//final FileInputStream in = new FileInputStream("/root/Downloads/hello");
//IOUtils.copyBytes(in, out, 1024, true);
//final AtomicInteger writeBytes = new AtomicInteger(0);
//final FSDataOutputStream out = fileSystem.create(new Path("/dir1/file2"), new Progressable() {
//@Override
//public void progress() {
//System.out.println("WriteBytes = "+writeBytes.get());
//}
//});
//
//final FileInputStream in = new FileInputStream("/root/Downloads/hello");
//byte[] buffer = new byte[4];
//int readBytes = in.read(buffer);
//while(readBytes!=-1) {
//out.write(buffer);
//out.flush();
//out.hsync();
//writeBytes.addAndGet(readBytes);
//readBytes = in.read(buffer);
//}
//读取数据
//final FSDataInputStream in = fileSystem.open(new Path("/dir1/file1"));
//IOUtils.copyBytes(in, System.out, 1024, true);
//遍历
//final FileStatus[] listStatus = fileSystem.listStatus(new Path("/"));
//for (FileStatus fileStatus : listStatus) {
//System.out.println(fileStatus);
//}
//获取工作目录
//fileSystem.getWorkingDirectory().toString();
//删除
final Trash trash = new Trash(fileSystem, fileSystem.getConf());
trash.moveToTrash(new Path("/dir1/file1"));
fileSystem.delete(new Path("/dir1/file1"), true);
}
}