希望多多指导,qq 86497564 。

© 天行自息
Powered by LOFTER

使用 HDFS Java API

    HDFS 是一个分布式文件系统,既然是文件系统,就可以对其文件进行操作,比如说新建文件、删除文件、读取文件内容等操作。

    Java 程序使用 HDFS Java API 与 HDFS 交互。使用这个 API,我们可以从 Java 程序中使用存储在 HDFS 中的数据,以及使用其它非 Hadoop 计算框架来处理这些数据。

    有时,也会遇见这种情况-想要从一个 MapReduce 应用程序中直接访问 HDFS。不过,如果是直接从一个 Map 或 Reduce 任务中写入或修改 HDFS 中的文件,请注意这违背了MapReduce 的 side-effect-free(无副作用)特性,这有可能导致数据一致性问题。

    对分布在 HDFS 中的文件操作主要涉及一下几个类:
         Configuration类:该类的对象封装了客户端或者服务器的配置。

         FileSystem类:该类的对象代表一个文件系统对象,可以用该对象的一些方法来对文件进行操作。

            FileSystem fs = FileSystem.get(conf); // 通过 FileSystem 类的静态方法 get 获得该对象

         FSDataInputStream 和 FSDataOutputStream:这两个类是 HDFS 中的输入输出流。分别通过 FileSystem 的 open 方法和 create 方法获得。

         Path:代表文件或文件对象。
        下面这个示例演示了怎样通过 Java 程序使用 HDFS Java API 来执行在 HDFS 上的文件系统操作。

【示例】通过 Java 程序使用 HDFS Java API 操作 HDFS 文件系统。请按以下步骤执行:

    1、在 Eclipse 中新创建一个名为 HDFSJavaAPIExample 的 project;

    2、在项目的 src 目录下创建一个名为 HDFSJavaAPIDemo.java 的源文件,该 java 程序会在 HDFS 中创建一个新的文件,并在其中写入一些文本,然后从 HDFS 读取回这个文件。编辑代码如下:


        HDFS 分布式文件系统的 JAVA-API 提供了丰富的访问接口。主要包括:目录的创建、列表、查询、删除和文件的创建(写入)、读取等。 下面这个示例演示了其中一些方法:

        程序主类:


程序的HDFSUtil类:






评论
热度 ( 2 )