HDFS的Java操作(基本的增删改查、文件的上传下载、本地与云服务器交互等)
环境:IDEA、Linux虚拟机上搭建的Hadoop集群
hdfs在生产应用中主要是客户端的开发,其核心步骤是从hdfs提供的api中构造一个HDFS的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS上的文件
1.搭建开发环境
1.1IDEA中的POM文件导入依赖
<build>
<plugins>
<!-- 指定JDK的版本--><plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
</dependencies>
注:如需手动;引入jar包,HDFS的jar包–>Hadoop的安装目录的share下
1.2Window下开发的说明
建议在linux下进行hadoop应用的开发,不会存在兼容性问题。如在window上做客户端应用开发,需要设置以下环境:
A、在windows的某个目录下解压一个hadoop的安装包
B、将安装包下的lib和bin目录用对应windows版本平台编译的本地库替换
C、在window系统中配置HADOOP_HOME指向你解压的安装包
D、在windows系统的path变量中加入hadoop的bin目录
2.接下来直接上实战代码
2.1源码
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.net.URI;
/**
* @author:
*/
public class HDFSApi {
FileSystem fileSystem;
/**
* 获取hadoop的连接对象
*/
@Before
public void init(){
//final URI uri, final Configuration conf,
// final String user
Configuration conf = new Configuration();
conf.set("dfs.replication","1");
try {
fileSystem = FileSystem.get(URI.create("hdfs://192.168.20.111:9000"), conf, "root");
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
* 创建目录或者文件
*/
@Test
public void mkdir(){
try {
boolean mkdirs = fileSystem.mkdirs(new Path("/test1/bbb"));