使用Java API操作HDFS文件系统

 

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);
    }
}

posted @ 2021-06-30 16:18  酱汁怪兽  阅读(164)  评论(0)    收藏  举报