HDFS Java客户端操作
一.Windows本地安装hadoop
1.解压 hadoop 安装包到非中文路径
2.把hadoop-bin.rar文件解压后所有文件拷到hadoop的bin文件夹下
3.把bin文件下的hadoop.dll文件拷贝到C:\windows\System32目录下
4.配置环境变量
Path:
%HADOOP_HOME%\bin
%HADOOP_HOME%\sbin
HADOOP_HOME
D:\Program Files (x86)\hadoop\hadoop-2.6.0-cdh5.14.2
如果没有配置本地hadoop的话可能在执行java api中出现Could not locate executable null\bin\winutils.exe in the hadoop binaries
的报错异常,配置完成后,可能需要重启一下机器。
二.Java API完成移动通信数据的管理
1.一般在idea中新建一个maven工程,并在pom.xml文件中添加maven依赖包
注:如何建maven工程见博客:Maven安装
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
2.使用idea进行创建,上传,删除操作
基本操作步骤:
- 创建配置文件
Configuration conf=new Configuration();
- 获取文件系统
FileSystem fs=FileSystem.get(new URI("hdfs://192.168.36.32:9000") ,conf,"root");
- 调用API操作
--创建文件夹
fs.mkdirs(new Path(""));
--上传文件
fs.copyFromLocalFile(new Path(""),new Path(""));
--下载文件
fs.copyToLocalFile(new Path(""),new Path(""));
--删除文件,true代表递归删除
fs.delete(new Path(""),true);
- 关闭资源
fs.close();
代码如下:
package cn.kgc.kb09.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.jupiter.api.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 conf=new Configuration();
//2.获取文件系统
FileSystem fs=FileSystem.get