Java API在HDFS上实现文件的上传、下载到本地、创建文件夹、删除文件和重命名文件
前期准备:
一、前期准备
(1)Hadoop集群已配置完毕
(2)linux系统安装jdk
(3)在linux系统中安装并破解IntelliJ IDEA
二、通过JAVA API接口操纵HDFS
1.在IDEA中创建maven项目
2.设置配置文件
(1)修改pom.xml文件导入依赖如下,刷新,自动安装hdfs所需包
(2)在hdfs项目的src->main->resources路径下创建log4j2.xml日志文件,添加内容如下
3.在hdfs项目的src->main->java路径下创建com.min.hadoop包,然后在com.min.hadoop包下创建HdfsUtil.java、test.java实现hdfs的文件操作,项目目录结构如下图
4.HdfsUtil.java文件实现了hdfs文件的上传、下载、删除、创建以及重命名操作,源代码如下
package com.min.hadoop;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class HdfsUtil {private FileSystem fs;HdfsUtil(String user){Configuration cfg = new Configuration();URI uri = null;try {uri = new URI("hdfs://Hadoop1:9000");} catch (URISyntaxException e) {e.printStackTrace();}try {// 根据配置文件,实例化成DistributedFileSystemfs = FileSystem.get(uri, cfg, user); // 得到fs句柄} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}/*** 上传文件*/public void upload(String src, String dst){try {// 上传fs.copyFromLocalFile(new Path(src), new Path(dst));} catch (IOException e) {e.printStackTrace();}}/*** 下载文件*/public void download(String src, String dst){try {// 下载fs.copyToLocalFile(new Path(src), new Path(dst));} catch (IOException e) {e.printStackTrace();}}/*** 创建文件夹*/public void mkdir(String dir){try {fs.mkdirs(new Path(dir));} catch (IOException e) {// 创建目录e.printStackTrace();}}/*** 删除文件*/public void delete(String name, boolean recursive){try {fs.delete(new Path(name), recursive);} catch (IOException e) {e.printStackTrace();}}/*** 重命名*/public void rename(String source, String dst){try {fs.rename(new Path(source), new Path(dst));} catch (IOException e) {e.printStackTrace();}}
}
5.test1.java文件创建主函数向hdfs上传文件1.txt
(1)上传文件代码
(2)运行成功
(3)网页端查看
6.test1.java文件创建主函数从hdfs下载文件到桌面并命名为hadoop.txt
(1)下载文件代码
(2)linux桌面查看
7.test1.java文件创建主函数在hdfs的根目录下创建文件夹bhn
(1)创建文件夹代码
(2)网页端查看
8.test1.java文件创建主函数删除hdfs上根目录下的1.txt文件
(1)删除文件代码
(2)网页端查看
9.test1.java文件创建主函数在hdfs上将bhn重命名为baihongna
(1)重命名文件代码
(2)网页端查看
Java API在HDFS上实现文件的上传、下载到本地、创建文件夹、删除文件和重命名文件相关推荐
- 【文件和递归】File:创建功能,删除功能,重命名功能,判断功能,基本获取功能,高级获取功能,断有没有.png后的文件,递归:归注意事项,用代码求出实现5的阶乘,不死神兔案例,递归删除带内容的目录
一. 文件 我们想要实现IO操作,就必须要知道硬盘上文件的表现形式 Java提供了一个类让我们操作硬盘上的文件:File File也就是文件表现形式 1.File:文件和目录(文件夹)路径名的抽象表示 ...
- java file rename 失败_java重命名文件造成文件不可读写
我想使用java代码对nginx日志文件进行拆分,但是我发现代码执行之后,拆分出来的日志文件没有读写权限,查看文件属性,显示的很诡异: 点击高级按钮,显示你没有权限查看或者编辑这个对象的权限设置: 反 ...
- java文件移动重命名_Java重命名文件和移动文件
Java重命名文件或移动文件是一种常见的IO操作.可以使用File.renameTo(File dest)方法进行重命名文件和移动文件操作. 1. Java重命名文件 如果文件重命名成功,则文件ren ...
- 使用java批量重命名文件
指定一个文件夹,用于批量重命名文件,或者定位到现有的文件夹中都可以. File file = new File();String[] list = file.list();String coonet ...
- 在Python中复制和重命名文件
Using shutil (shell utilities) module, file operation such as copy, rename, move, etc is very handy. ...
- c语言文件批量改名,批量重命名文件的技巧
批量重命名文件的技巧 尝试了半天,终于找到了几种批量重命名文件的方法,记录下来以备后用^_^ [quietheart@lv-k temp]$ touch {1,2,3,4,5}.cpp [quieth ...
- Ubuntu下移动与重命名文件
Ubuntu下移动和重命名文件都是采用的mv命令,对于文件夹的操作也是如此. Ubuntu移动文件filename到目录/home/Desktop命令: $ mv filename /home/Des ...
- Linux下重命名文件或文件夹
文章目录 Linux下重命名文件或文件夹 Linux下重命名文件或文件夹 在Linux下重命名文件或目录,可以使用mv命令或rename命令,这里分享下二者的使用方法. mv命令既可以重命名,又可以移 ...
- JAVA API实现HDFS操作(二)操作函数
说明:在IDEA集成环境中利用JAVA API实现目录的创建.文件的创建.文件的上传和下载.文件的查看.文件删除.文件的编辑等操作.以下代码均创建在my.dfs包下 创建文件夹 在hdfs系统的根目录 ...
- 用Java API实现HDFS操作(三)问题汇总
说明:整理博主用Java API实现HDFS操作时遇到的问题 问题 为搭建分布式操作环境–在ubuntu16中安装IDEA2021.tomcat9.0.hadoop2.7,建议分配磁盘空间30G及以上 ...
最新文章
- 什么时候用转发什么时候用重定向_验孕棒什么时候用最准确
- php组成,PHP的控制结构,PHP脚本是由一系列语句组成的。
- Android OpenGLES2.0(十四)——Obj格式3D模型加载
- SDK与API的区别
- git clone 拉取github上面的代码报错:fatal: Authentication failed for xxx解决
- 5. Document open() 方法
- php for 循环 try_重新学习php基础之循环遍历(for循环和while循环)(六)
- Bridge桥的简介-从零开始学RouterOS系列14
- 董明珠和雷军的十亿赌约马上就要到了,谁会笑到最后?
- Linux: 李纳斯·托沃兹(Linus Torvalds): “使用KDE”(转)
- 恒瑞、百济之外,再鼎开辟了中国医药创新又一极
- 电影网站 php asp,moviewebsite 这是一个电影网站的源码,基于asp技术实现.仅供交流学习 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
- hdu5594 ZYB's Prime
- 入坑codewars
- 信奥一本通1023(大象喝水查)配详解
- Windows10切换屏幕
- JMeter 组件7:Pre Processors预处理器
- 国外matlab用的多吗,挑战智力极限 国外某大学脑残又变态的路程问题 需要matlab...
- 圣经和古兰经里有恶意程序!还能否愉快祈祷?
- 重载操作符 (c++primer 4e)
热门文章
- iOS -- 开源项目和库
- 树莓派Pico开发软件安装(Thonny)及烧录(flash)
- python无法打开_python程序无法打开是怎么回事
- 论职能线和产品线的部门划分
- android 指纹比对方法,指纹识别功能方面对比_手机Android频道-中关村在线
- IOS7使用吐槽(抛弃拟物化您还能走多远.........)
- Draco代码分析(一) —— Encode过程探究其数据编码方式
- 【VMware】Assuming drive cache: write through
- MenuetOS-令人不可思议的64位操作系统!-第二辑
- oenwrt 进不了bios_J1900在openwrt不能正常重启的BIOS选项说明