HDFS的JAVA API操作

  HDFS 在生产应用中主要是客户端的开发,其核心步骤是从 HDFS 提供的 api中构造一个 HDFS 的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS 上的文件。

创建 Maven工程,引入 pom依赖:

    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.7.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.7.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.7.4</version>
        </dependency>
    </dependencies>

配置Windows平台的Hadoop环境

在 windows 平台下编译 Hadoop 源码
解压到 windows 的任意一个目录下(无中文无空格)
在 windows 系统中配置 HADOOP_HOME 指向你解压的安装包目录
在 windows 系统的 path 变量中加入 HADOOP_HOME 的 bin 目录(和配置java环境变量基本一致)

使用java api操作HDFS

public class HDFSClient {
    public static void main(String[] args) throws Exception {
        //指定相关参数的配置
        Configuration conf = new Configuration();
        //这里指定使用的是 hdfs 文件系统
        conf.set("fs.defaultFS", "hdfs://bigdata-01:9000");

        //通过如下的方式进行客户端身份的设置
        System.setProperty("HADOOP_USER_NAME", "root");

        //通过 FileSystem 的静态方法获取文件系统客户端对象
        FileSystem fs = FileSystem.get(conf);
        //也可以通过如下的方式去指定文件系统的类型 并且同时设置用户身份
        //FileSystem fs = FileSystem.get(new URI("hdfs://bigdata-01:9000"), conf, "root");


        //创建一个文件夹
        //fs.mkdirs(new Path("/hdfsbyjava"));
        //创建一个文件
        //fs.create(new Path("/hdfsbyjava/abc"), false);

        //上传一个文件
        //fs.copyFromLocalFile(new Path("d:/a.txt"), new Path("/hdfsbyjava-ha"));


        //下载一个文件
        fs.copyToLocalFile(new Path("/hdfsbyjava/abc"),new Path("D://bcd"));

        //删除一个文件
        //fs.delete(new Path("/hdfsbyjava/abc"));

        //关闭文件系统
        fs.close();
    }
}

 

分类:

技术点:

相关文章: