1.客户端准备

  1. 下载hadoop-3.1.0到指定路径。
  2. 配置环境变量

HDFS的API操作 - 图1

  1. 配置Path环境变量

HDFS的API操作 - 图2

  1. 验证Hadoop环境变量是否正常。双击winutils.exe,如果报错误。说明缺少微软运行库,安装微软运行库即可。

HDFS的API操作 - 图3

  1. 安装配置Maven 下载地址:https://maven.apache.org/download.cgi
Maven是Apache下基于Java开发的开源项目。Maven项目对象模型(POM)是一个项目管理工具软件,可以通过简短的中央信息描述来管理项目的搭建,报告和文档等步骤。
  • 下载

HDFS的API操作 - 图4

  • 安装
将下载好的压缩包,解压至D盘的major/Maven下,在选定位置创建名为repository的文件夹

HDFS的API操作 - 图5

添加环境变量

a.复制安装路径:D:\major\Maven\apache-maven-3.8.6

b.添加系统环境变量

HDFS的API操作 - 图6

c.点击Path编辑环境变量

HDFS的API操作 - 图7

d.测试安装效果:使用win+r键,在运行窗口中输入cmd,单击”确定”。在弹出的窗口中输入:mvn -v命令,返回如图结果表示安装完成。

HDFS的API操作 - 图8

HDFS的API操作 - 图9

  • 修改配置文件

a.修改Maven的下载镜像地址

在conf文件夹中找到settings.xml文件,使用记事本打开。

HDFS的API操作 - 图10

配置远程仓库地址,找到 标签,复制如下子标签代码放在 标签中,将默认代码注释掉。

alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central

HDFS的API操作 - 图11

b.配置maven编译环境

找到 标签,在下面添加maven编译环境和jdk环境等配置
jdk-dev true 1.8 1.8 1.8 1.8

HDFS的API操作 - 图12

c.配置本地仓库路径

D:/major/Maven/repository

HDFS的API操作 - 图13

  • 在IDEA中配置Maven环境

a.打开IDEA编辑器,单击”File”,单击”settings”,进入设置页面。

HDFS的API操作 - 图14

b.分别配置:Maven home path,User settings file,Local repository路径,根据自己的路径进行选择,然后单击”确定”,完成配置。

HDFS的API操作 - 图15

配置完成,新建maven项目后就可以使用。 6. 在IDEA中创建一个Maven工程HdfsClientDemo

HDFS的API操作 - 图16

HDFS的API操作 - 图17

HDFS的API操作 - 图18

  1. 配置POM.xml

将配置代码复制到POM.xml文件中:

org.apache.hadoop hadoop-client 3.1.3 junit junit 4.12 org.slf4j slf4j-log4j12 1.7.30

HDFS的API操作 - 图19

  1. 配置log4j.properties文件
在项目的src/main/resources目录下,新建一个文件,命名为“log4j.properties”,在文件中填入如下内容:

log4j.rootLogger=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.FileAppender

log4j.appender.logfile.File=target/spring.log

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

HDFS的API操作 - 图20

  1. 创建名为java的文件
创建java文件夹,并将文件夹设置为Sources Root

HDFS的API操作 - 图21

设置完成后才能在java文件夹中创建package,否则不能创建。在java文件夹中创建package:com.dy
  1. 在com.li包中创建HdfsClient类,进行Java API测试,测试代码如下:

package com.dy;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

import org.junit.Test;

import java.io.IOException;

import java.net.URI;

import java.net.URISyntaxException;

public class HdfsClient {

  1. @Test
  2. public void testMkdirs() throws IOException, URISyntaxException, InterruptedException {
  3. // 1 获取文件系统
  4. Configuration configuration = new Configuration();
  5. FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration,"li");
  6. // 2 创建目录
  7. fs.mkdirs(new Path("/school/class01/"));
  8. // 3 关闭资源
  9. fs.close();
  10. }

}

HDFS的API操作 - 图22

客户端去操作HDFS时,是有一个用户身份的。默认情况下,HDFS客户端API会从采用Windows默认用户访问HDFS,会报权限异常错误。所以在访问HDFS时,一定要配置用户。