HDFS-API编程基本操作

常用操作 :
1,用代码删除hdfs上的文件
2,追加数据到hdfs文件
3,获取校验和
4,修改权限
测试代码:


```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileChecksum;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.permission.FsPermission;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

public class Test4 extends Configured implements Tool {
	public static void main(String[] args) throws Exception {
		//调用run方法
		ToolRunner.run(new Test4(), args);
	}

	@Override
	public int run(String[] args) throws Exception {
		Configuration conf = getConf();
		FileSystem fs = FileSystem.get(conf);
		Path p = new Path(conf.get("inpath"));
		
		//读取hdfs数据
		//fs.open(p);
		//写数据到hdfs集群上,inpath后期传入的数据要是hdfs上【没有】的资源
		//FSDataOutputStream out = fs.create(p);
		
		//追加数据的到hdfs集群上,inpath后期传入的数据要是hdfs上【有】的资源
		//FSDataOutputStream out = fs.append(p);
		
		//删除hdfs集群上的资源
		//boolean delete = fs.delete(p);
		//fs.removeAcl(p);
		
		//获取校验和
		//FileChecksum fileChecksum = fs.getFileChecksum(p);
		//new FsPermission((short)00777)
		
		//修改权限
		FsPermission permission = new FsPermission((short)00777);
		fs.setPermission(p, permission);
		
		fs.close();
		return 0;
	}
	/**
	 * 删除集群上的文件/文件夹
	 * fs集群文件系统
	 * p 要删除的文件 或者文件夹
	 * @throws IOException 
	 * */
	public void delete(FileSystem fs,Path p) throws IOException{
		
		//fs.delete(p);
		//
		//可能需要设置  setting dfs.namenode.acls.enabled=false.
		//fs.removeAcl(p);
		//fs.removeDefaultAcl(p);
	}
}

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页