您的位置:首页 > 大数据 > Hadoop

HDFS在JAVA中的API

2019-06-17 16:14 816 查看

编译器:Eclipse

导入依赖的jar包,导入hdfs配置文件
测试类中创建FileSystem.get(new Configuration) 返回FileSystem fs实例对象

创建hdfs中的目录(包括不存在的目录)

fs.mkdirs(new Path("/test/input"));//返回boolean

查看hdfs某目录下的文件是否存在

fs.exists(new Path("/home/aaaa"));//返回boolean

给hdfs中的文件重命名

fs.rename(new Path("/home/aaaa"), new Path("/home/bbbb"));//返回boolean,第二个参数不存在则会新建

删除hdfs中的某文件

fs.delete(new Path("/home/bbbb"));//返回boolean

上传本地文件到hdfs某目录

//获取本地的文件
File localFile = new File("d://aaaab.txt");
//缓冲流读到本地文件的内容,作为到hdfs的输入
InputStream input = new BufferedInputStream(new FileInputStream(localFile));
//在hdfs中新建目录,名字为本地的文件名,此文件作为输出
FSDataOutputStream output = fs.create(new Path("/home/"+localFile.getName()));
//将input流输入到output流输出
IOUtils.copyBytes(input, output, conf, true);
--in:是FSDataInputStream类的对象,是有关读取文件的类,也就是所谓“输入流”
--out:是FSDataOutputStream类的对象,是有关文件写入的类,也就是“输出流”
--conf:是传入new Configuration的实例化对象
--true - 是否关闭数据流,如果是false,就在finally里关掉,true则执行完后关掉
//执行完后本地的文件会保留
//执行完后本地的文件会消失
fs.copyFromLocalFile(Path src, Path  dst);

下载hdfs中的文件到本地

//获取hdfs中的文件的内容的流,作为到本地的输入
FSDataInputStream input = fs.open(new Path("/home/aaaa"));
//获取本地的文件的输出流,作为输出
FileOutputStream output = new FileOutputStream(new File("d://aaaab.txt"));
//将input流输入到output流输出
IOUtils.copyBytes(input, output, conf, true);
-in:是FSDataInputStream类的对象,是有关读取文件的类,也就是所谓“输入流”
--out:是FSDataOutputStream类的对象,是有关文件写入的类,也就是“输出流”
--conf:是传入new Configuration的实例化对象
--true - 是否关闭数据流,如果是false,就在finally里关掉,true则执行完后关掉
//执行完后本地的文件会保留
//	执行完后hdfs的文件会消失
fs.copyToLocalFile(Path src, Path  dst);

仅供参考

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: