Hadoop之HDFS(三)HDFS的JAVA API操作
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(); } }