HDFS的API
1.客户端环境准备
1)拷贝hadoop-3.1.0到非中文路径(比如d:\)。
2)配置HADOOP_HOME环境变量
3)配置Path环境变量。
注意:如果环境变量不起作用,可以重启电脑试试
4. 验证Hadoop环境变量是否正常。双击winutils.exe如 果报如下错误。说明缺少微软运行库(正版系统往往 有这个问题)。有下载的微软运行库安装包双击安装即可。
5.配置(idea)maven
6.创建maven工程
7.导入依赖
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version>
</dependency>
</dependencies>
7.在项目的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
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
8.创建包名:com.xyd.hdfs
9.创建HdfsClient类
package com.scy.hdfs;
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 {
@Test
public void testMkdirs () throws
IOException, URISyntaxException,
InterruptedException {
//1.获取文件系统
Configuration configuration = new
Configuration();
FileSystem fileSystem =
FileSystem.get(new URI("hdfs://hadoop1002:8020"), configuration, "admin");
//2.创建目录
fileSystem.mkdirs(new
Path("/xiyouji/huaguoshan"));
//3.关闭资源
fileSystem.close();
}
}
10.执行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
11.编写源码上传文件
@Test
public void testUpdate() throws URISyntaxException, IOException, InterruptedException {
//1.实例化一个文件系统对象
FileSystem fileSystem = FileSystem.get(new URI("hdfs://hadoop1002:8020"),
new Configuration(), "admin");
//2.调用上传api
fileSystem.copyFromLocalFile(new Path("d:/sunwukong.txt"), new Path("/xiyouji/huaguoshan"));
//3.关闭文件系统,释放资源
fileSystem.close();
}
12.执行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
13.将hdfs-site.xml拷贝到项目的resources资源目录下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>