java连接hdfs文件系统 如何使用Java API操作HDFS系统

1.搭建项目环境
打开Eclipse选择FileàNewàMaven Project创建Maven工程,选择“Create a simple project ”选项,点击【Next】按钮,会进入“New Maven Project”界面,如图1所示 。

java连接hdfs文件系统 如何使用Java API操作HDFS系统

文章插图
图1 创建Maven工程
在图1中,勾选“Create a simple project(skip archetype selection)”表示创建一个简单的项目(跳过对原型模板的选择),然后勾选“User default Workspace location”表示使用本地默认的工作空间之后,点击【Next】按钮,如图2所示 。
java连接hdfs文件系统 如何使用Java API操作HDFS系统

文章插图
图2 创建Maven工程配置
在图2中,GroupID也就是项目组织唯一的标识符,实际对应Java的包结构,这里输入com.itcast 。ArtifactID就是项目的唯一标识符,实际对应项目的名称,就是项目根目录的名称,这里输入HadoopDemo,打包方式这里选择Jar包方式即可,后续创建Web工程选择War包 。
此时Maven工程已经被创建好了,会发现在Maven项目中,有一个pom.xml的配置文件,这个配置文件就是对项目进行管理的核心配置文件 。
使用Java API操作HDFS需要用到hadoop-common、hadoop-hdfs、hadoop-client三种依赖,同时为了进行单元测试,还要引入junit的测试包,具体代码如文件所示 。
文件 pom.xml
  <?xml version="1.0" encoding="UTF-8"?>   <project xmlns=`http://maven.apache.org/POM/4.0.0`   xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance"`   xsi:schemaLocation=`"http://maven.apache.org/POM/4.0.0`   http://maven.apache.org/xsd/maven-4.0.0.xsd"`>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.itcast</groupId>
   <artifactId>HadoopDemo</artifactId>
   <version>0.0.1-SNAPSHOT</version>
  **<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>**
     **<dependency>**
       **<groupId>junit</groupId>**
       **<artifactId>junit</artifactId>**
       **<version>RELEASE</version>**
     **</dependency>**
   **</dependencies>**  </project>```

当添加依赖完毕后,Hadoop相关Jar包就会自动下载,部分Jar包如图3所示 。

![img](uploads/course/bigData/images/3.4.2/clip_image006-1591775346489.jpg)

> 图3   成功导入Jar包

从图3可以看出,所需要的Hadoop的Jar包所在路径就是setting.xml中配置的本地仓库位置 。

**2****.初始化客户端对象**

首先在项目src文件夹下创建com.itcast.hdfsdemo包,并在该包下创建HDFS_CRUD.java文件,编写Java测试类,构建Configuration和FileSystem对象,初始化一个客户端实例进行相应的操作,具体代码如文件3-2所示 。

文件  HDFS_CRUD.java

```java
  package com.itcast.hdfsdemo;   import java.io.*;   import org.apache.hadoop.conf.Configuration;   import org.apache.hadoop.fs.*;   import org.junit.*;
  public class HDFS_CRUD {
    FileSystem fs = null;
    @Before
    public void init() throws Exception {      // 构造一个配置参数对象,设置一个参数:我们要访问的hdfs的URI
     Configuration conf = new Configuration();      // 这里指定使用的是HDFS文件系统
     **conf.set("fs.defaultFS", "hdfs://hadoop01:9000")**;      // 通过如下的方式进行客户端身份的设置
     **System.setProperty("HADOOP_USER_NAME", "root")**;      // 通过FileSystem的静态方法获取文件系统客户端对象

秒懂生活扩展阅读