HDFS的JAVA API操作
HDFS 在生产应用中主要是客户端的开发,其核心步骤是从 HDFS 提供的 api中构造一个 HDFS 的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS 上的文件。
创建 Maven工程,引入 pom依赖:
<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>
</dependencies>
配置Windows平台的Hadoop环境
在 windows 平台下编译 Hadoop 源码
解压到 windows 的任意一个目录下(无中文无空格)
在 windows 系统中配置 HADOOP_HOME 指向你解压的安装包目录
在 windows 系统的 path 变量中加入 HADOOP_HOME 的 bin 目录(和配置java环境变量基本一致)
使用java api操作HDFS
public class HDFSClient {
public static void main(String[] args) throws Exception {
//指定相关参数的配置
Configuration conf = new Configuration();
//这里指定使用的是 hdfs 文件系统
conf.set("fs.defaultFS", "hdfs://bigdata-01:9000"); //通过如下的方式进行客户端身份的设置
System.setProperty("HADOOP_USER_NAME", "root"); //通过 FileSystem 的静态方法获取文件系统客户端对象
FileSystem fs = FileSystem.get(conf);
//也可以通过如下的方式去指定文件系统的类型 并且同时设置用户身份
//FileSystem fs = FileSystem.get(new URI("hdfs://bigdata-01:9000"), conf, "root"); //创建一个文件夹
//fs.mkdirs(new Path("/hdfsbyjava"));
//创建一个文件
//fs.create(new Path("/hdfsbyjava/abc"), false); //上传一个文件
//fs.copyFromLocalFile(new Path("d:/a.txt"), new Path("/hdfsbyjava-ha")); //下载一个文件
fs.copyToLocalFile(new Path("/hdfsbyjava/abc"),new Path("D://bcd")); //删除一个文件
//fs.delete(new Path("/hdfsbyjava/abc")); //关闭文件系统
fs.close();
}
}