常用操作 :
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);
}
}