HDFS的Java API操作

搭建maven工程,使用HDFS的Java API方法来实现对文件的操作:

  • 搭建项目环境:打开eclipse,创建Maven工程,在pom.xml配置文件进行编辑。

代码如下:



4.0.0
com.itcast
HadoopDemo
0.0.1-SNAPSHOT


org.apache.hadoop
hadoop-common
2.7.4


org.apache.hadoop
hadoop-hdfs
2.7.4


org.apache.hadoop
hadoop-client
2.7.4


junit
junit
RELEASE



  • 初始化客户端对象:首先在项目src文件夹下创建com.itcast.hdfsdemo包,并在该包下创建HDFS_CRUD.java文件,编写Java测试类,构建Configuration和FileSystem对象,初始化一个客户端实例进行相应的操作。

代码如下:

package com,itcast,hdfsdemo;
import java.io.*;
import org.apache.hadoop.conf.Configuration;
lmport org.apache.hadoop.fs.*;
import org.junit,*;
public class HDFS_CRUD{
FileSystem fs=nu11;
@Before
 public void init() throws Exception {
 //构造一个配置参数对象,设置一个参数:要访间的HDFB的URI
 Configuration conf=new Configuration( );
 //这里指定使用的是HDFS
 conf.set("fs.defaultFS","hdfs://hadoop01:9000");
//通过如下的方式进行客户端身份的设置
System.setProperty("HADOOP_USER_NAME", "root");
//通过 FileSystem的静态方法获取文件系统客户端对象
fs=FileSystem.get(conf);
}
}
  • 上传文件到HDFS:初始化客户端对象后,接下来实现上传文件到HDFS的功能。由于采用Java测试类来实现JavaApi对HDFS的操作,在HDFS_CRUD.java文件中添加一个testAddFileToHdfs()方法来进行本地文件上传到HDFS。

代码如下:

@Test
public void testaddFileToHdfs() throws IOException {
//要上传的文件所在本地路径
Path src=new Path("D:/test.txt");
//要上传到HDFS的目标路径
Path dst=new Path("/testFile”);
//上传文件方法
fs.copyFromLocalFile(src, dst);
//关闭资源
fs.close();
}
  • 从HDFS 下载文件到本地:在HDFS_CRUD.java文件中添加一个testDownloadFileToLocal()方法,来实现从HDFS中下载文件到本地系统的功能。

代码如下:

//从HDFS中复制文件到本地文件系统
@Test
public void testDownloadFileToLocal() throws IllegalArgumentException,
IOException {
//下载文件
fs.copyToLocalFile(new Path("/testFile"), new Path("D:/"));
fs.close();
}
  • 目录操作:在HDFS_CRUD.java文件中添加一个testMkdirAndDeleteAndRename()方法,实现目录的创建、删除、重命名的功能。

代码如下:

//创建,删除,重命名文件
@Test
pubiic void teatMkdizAndDeleteAndRenane() throws Exception {
//创建目录
fs.mkdirs (new Path("/a/b/c"));
fs.mkdirs(new Path("/a2/b2/c2"));
//重命名文件或文件夹
fs.rename (new Path("/a"), new Path("/a3"));
//删除文件夹,如果是非空文件夹,参数2必须给值true
fs.delete(new Path("/a2"), true);
}

编译代码过程中产生了部分报错

java.io.IOException: (null) entry in command string: null chmod 0644 D:\testFile

在windows平台开发hdfs项目时,需要设置hadoop开发环境。

解决方法:安装配置windows平台hadoop后需要重启电脑。使用下载的linux平台下的hadoop压缩包进行解压,然后在解压包bin目录下额外添加windows相关的依赖文件(winutils.exe、winutils.pdb、hadoop.dll),然后进行hadoop环境变量配置。

你可能感兴趣的:(个人hadoop学习,java,hadoop,maven)