java-hadoop学习之路2 java删除读取HDFS

新建class(右键src,新建class)

 

package hadoop_class1;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

public class HDFSTest {
	//初始化全局静态的fs对象
	private static FileSystem fs;
	static {
		Configuration conf = new Configuration();
		conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", 
				"NEVER");
		conf.set("dfs.client.block.write.replace-datanode-on-failure.enable", 
				"true");
		try {
			//URI("hdfs://192.168.84.137:9000")为集群ip和HDFS端口号
			fs = FileSystem.get(new URI("hdfs://192.168.84.137:9000"),conf);
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
	//显示指定目录下面所有的HDFS数据文件
	public static void ListDirAll(String DirFile) throws IOException{
		Path path = new Path(DirFile);
		FileStatus[] status = fs.listStatus(path);
		//遍历
		for(FileStatus f : status) {
			System.out.println(f.getPath().toString());
		}
	}
	//在指定位置新建一个文件,并写入字符
	public static void WriteToHDFS(String file,String words) 
		throws IOException, URISyntaxException{
			Path path = new Path(file);
			FSDataOutputStream out = fs.create(path);//创建文件
			out.write(words.getBytes("UTF-8"));
			out.close();
	}
	//读取指定HDFS的文件内容,并在窗口打印出结果
	public static void ReadFromHDFS(String file) throws IOException,
	       URISyntaxException{
		//System.out.println("aaa");
		Path path = new Path(file);
		//System.out.println("bbb");
		FSDataInputStream in = fs.open(path);
		//System.out.println("ccc");
		IOUtils.copyBytes(in, System.out, 4096,true);
		//System.out.println("ddd");
		in.close();
	}
	//删除指定的HDFS文件
	public static void DeleteHDFSFile(String file) throws IOException{
		Path path = new Path(file);
		fs.delete(path,true);
	}
	//上传指定目录下的数据文件到指定的目录下面
	public static void UploadLocalFileHDFS(String src,String dst)
			throws IOException{
		Path pathDst = new Path(dst);
		Path pathSrc = new Path(src);
		fs.copyFromLocalFile(pathSrc, pathDst);
	}

	public static void main(String[] args) throws IOException,URISyntaxException{
		// TODO Auto-generated method stub
		
		//[hadoop@HBase ~]$ hdfs dfs -mkdir /test
		//[hadoop@HBase ~]$ hdfs dfs -put text.txt /test
		String filewrite = "/test/text.txt";
		String ListPath = "/test";
		//显示指定目录下面所有的HDFS数据文件
		System.out.println("显示指定目录下面所有的HDFS数据文件");
		ListDirAll(ListPath);

		//读取文件内容
		System.out.println("读取文件内容");
		ReadFromHDFS(filewrite);

		//删除指定的HDFS文件
		System.out.print("删除指定的HDFS文件");
		DeleteHDFSFile(filewrite);


	}

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值