上传到HDFS文件系统中,往该文本文件写入姓名,再将其读出打印

package com.upload;
import java.io.ByteArrayInputStream;
import java.net.URI;
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 FileUpload {
	public static void main(String[] args) throws Exception {
		Configuration conf = new Configuration();
		URI uri = new URI("hdfs://localhost:9000");
		FileSystem fs = FileSystem.get(uri, conf);
		Path src = new Path("/home/hadoop/桌面/localfile");
		Path dst = new Path("/user/hadoop");
		Path hdfsfile=new Path("/user/hadoop/localfile");
		fs.copyFromLocalFile(src, dst);
		FileStatus[] files = fs.listStatus(dst);
		for (FileStatus file : files) {
			System.out.println(file.getPath());
		}
		System.out.println("上传文件成功!");
		FSDataOutputStream fso=fs.append(hdfsfile);
		IOUtils.copyBytes(new ByteArrayInputStream("姓名".getBytes()), fso, conf,true);
		System.out.println("写入文件内容如下:");
		FSDataInputStream fsi = fs.open(hdfsfile);
		IOUtils.copyBytes(fsi, System.out, conf, true);
		IOUtils.closeStream(fso);
		IOUtils.closeStream(fsi);
	}

}

猜你喜欢

转载自blog.csdn.net/qq_33506160/article/details/79790220