package com.imooc.bigdata.hadoop.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.net.URI;
/**
* 使用Java API操作HDFS文件系统
*
* 关键点:
* 1)创建Configuration
* 2) 获取FileSystem
* 3) 剩下的是HDFS API的操作
*/
public class HDFSApp {
public static void main(String[] args) throws Exception{
/*
* 创建一个Configuration(org.apache.hadoop.conf)
*/
Configuration configuration = new Configuration();
/*
* 编程入口是FileSystem(org.apache.hadoop.fs)
* FileSystem是抽象的基类来访问文件系统
* get(configuration conf)返回的是配置好的文件系统的实现
* 把上面创建的configuration传入至get里,此时get处有一个IOException,所以在main后面抛出异常
*
* 需要连的hadoop的地址是:hadoop000:8020
* hadoop的用户名是hadoop,这里要指出来hadoop的用户名,否则默认本机名称
*/
FileSystem fileSystem = FileSystem.get(new URI("hdfs://hadoop000:8020"), configuration, "hadoop");
/*
* 操作fileSystem,创建一个目录mkdirs(),此处需要传入一个目录。
* 所以在hadoop里先new一个path出来
* mkdirs的返回值是布尔类型
*/
Path path = new Path("/hdfsapi/test");
boolean result = fileSystem.mkdirs(path);
System.out.println(result);
}
}
![]()
![]()