HDFS Java API操作练习

1、在HDFS根目录下中创建目录data

public class hdfs {
	private final static String HDFS_PATH="hdfs://192.168.109.120:9000";
	public static void main(String[] args) throws Exception{
		Configuration conf=new Configuration();
		FileSystem fs=FileSystem.get(new URI(HDFS_PATH),conf,"root");
		fs.mkdirs(new Path("/data"));
	}
}

2、将本地文件a.txt的内容写入到分布式文件系统的/data/a.txt中
说明:请自行创建文件a.txt,并添加以下内容:
I love Beijing
I love China
Beijing is the Capital of China

public class hdfs {
	private final static String HDFS_PATH="hdfs://192.168.109.120:9000";
	public static void main(String[] args) throws Exception{
		Configuration conf=new Configuration();
		FileSystem fs=FileSystem.get(new URI(HDFS_PATH),conf,"root");
		FileInputStream in=new FileInputStream("D://a.txt");
		FSDataOutputStream out =fs.create(new Path("/data/a.txt"));
		IOUtils.copyBytes(in, out, 4096,true);
	}
}

3、读取分布式文件系统的/data/a.txt内容,并打印到控制台

public class hdfs {
	private final static String HDFS_PATH="hdfs://192.168.109.120:9000";
	public static void main(String[] args) throws Exception{
		Configuration conf=new Configuration();
		FileSystem fs=FileSystem.get(new URI(HDFS_PATH),conf,"root");
		FSDataInputStream in =fs.open(new Path("/data/a.txt"));
		IOUtils.copyBytes(in, System.out, 1024);//输出到控制台
	}
}

4、列出HDFS文件系统中的根目录下的所有文件的状态信息

public class hdfs {
	private final static String HDFS_PATH="hdfs://192.168.109.120:9000";
	public static void main(String[] args) throws Exception{
		Configuration conf=new Configuration();
		FileSystem fs=FileSystem.get(new URI(HDFS_PATH),conf,"root");
		RemoteIterator<LocatedFileStatus> listFlies = fs.listFiles(new Path("/"), true);
		while(listFlies.hasNext()){
			LocatedFileStatus file = listFlies.next();
			String fileName=file.getPath().toString();
			long size=file.getLen();
			short rep=file.getReplication();
			long blocksize = file.getBlockSize();
			System.out.println("文件名称:"+fileName+",文件大小:"+size+",文件副本数:"+rep+",块大小:"+blocksize);;
		}
	}
}

在这里插入图片描述
5、删除文件a.txt

public class hdfs {
	private final static String HDFS_PATH="hdfs://192.168.109.120:9000";
	public static void main(String[] args) throws Exception{
		Configuration conf=new Configuration();
		FileSystem fs=FileSystem.get(new URI(HDFS_PATH),conf,"root");
		fs.delete(new Path("/data/a.txt"), false);  //删除文件
	}
}

你可能感兴趣的:(HDFS Java API操作练习)