前期准备:

一、前期准备

(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上实现文件的上传、下载到本地、创建文件夹、删除文件和重命名文件相关推荐

  1. 【文件和递归】File:创建功能,删除功能,重命名功能,判断功能,基本获取功能,高级获取功能,断有没有.png后的文件,递归:归注意事项,用代码求出实现5的阶乘,不死神兔案例,递归删除带内容的目录

    一. 文件 我们想要实现IO操作,就必须要知道硬盘上文件的表现形式 Java提供了一个类让我们操作硬盘上的文件:File File也就是文件表现形式 1.File:文件和目录(文件夹)路径名的抽象表示 ...

  2. java file rename 失败_java重命名文件造成文件不可读写

    我想使用java代码对nginx日志文件进行拆分,但是我发现代码执行之后,拆分出来的日志文件没有读写权限,查看文件属性,显示的很诡异: 点击高级按钮,显示你没有权限查看或者编辑这个对象的权限设置: 反 ...

  3. java文件移动重命名_Java重命名文件和移动文件

    Java重命名文件或移动文件是一种常见的IO操作.可以使用File.renameTo(File dest)方法进行重命名文件和移动文件操作. 1. Java重命名文件 如果文件重命名成功,则文件ren ...

  4. 使用java批量重命名文件

    指定一个文件夹,用于批量重命名文件,或者定位到现有的文件夹中都可以. File file = new File();String[] list = file.list();String coonet ...

  5. 在Python中复制和重命名文件

    Using shutil (shell utilities) module, file operation such as copy, rename, move, etc is very handy. ...

  6. c语言文件批量改名,批量重命名文件的技巧

    批量重命名文件的技巧 尝试了半天,终于找到了几种批量重命名文件的方法,记录下来以备后用^_^ [quietheart@lv-k temp]$ touch {1,2,3,4,5}.cpp [quieth ...

  7. Ubuntu下移动与重命名文件

    Ubuntu下移动和重命名文件都是采用的mv命令,对于文件夹的操作也是如此. Ubuntu移动文件filename到目录/home/Desktop命令: $ mv filename /home/Des ...

  8. Linux下重命名文件或文件夹

    文章目录 Linux下重命名文件或文件夹 Linux下重命名文件或文件夹 在Linux下重命名文件或目录,可以使用mv命令或rename命令,这里分享下二者的使用方法. mv命令既可以重命名,又可以移 ...

  9. JAVA API实现HDFS操作(二)操作函数

    说明:在IDEA集成环境中利用JAVA API实现目录的创建.文件的创建.文件的上传和下载.文件的查看.文件删除.文件的编辑等操作.以下代码均创建在my.dfs包下 创建文件夹 在hdfs系统的根目录 ...

  10. 用Java API实现HDFS操作(三)问题汇总

    说明:整理博主用Java API实现HDFS操作时遇到的问题 问题 为搭建分布式操作环境–在ubuntu16中安装IDEA2021.tomcat9.0.hadoop2.7,建议分配磁盘空间30G及以上 ...

最新文章

  1. 什么时候用转发什么时候用重定向_验孕棒什么时候用最准确
  2. php组成,PHP的控制结构,PHP脚本是由一系列语句组成的。
  3. Android OpenGLES2.0(十四)——Obj格式3D模型加载
  4. SDK与API的区别
  5. git clone 拉取github上面的代码报错:fatal: Authentication failed for xxx解决
  6. 5. Document open() 方法
  7. php for 循环 try_重新学习php基础之循环遍历(for循环和while循环)(六)
  8. Bridge桥的简介-从零开始学RouterOS系列14
  9. 董明珠和雷军的十亿赌约马上就要到了,谁会笑到最后?
  10. Linux: 李纳斯·托沃兹(Linus Torvalds): “使用KDE”(转)
  11. 恒瑞、百济之外,再鼎开辟了中国医药创新又一极
  12. 电影网站 php asp,moviewebsite 这是一个电影网站的源码,基于asp技术实现.仅供交流学习 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
  13. hdu5594 ZYB's Prime
  14. 入坑codewars
  15. 信奥一本通1023(大象喝水查)配详解
  16. Windows10切换屏幕
  17. JMeter 组件7:Pre Processors预处理器
  18. 国外matlab用的多吗,挑战智力极限 国外某大学脑残又变态的路程问题 需要matlab...
  19. 圣经和古兰经里有恶意程序!还能否愉快祈祷?
  20. 重载操作符 (c++primer 4e)

热门文章

  1. iOS -- 开源项目和库
  2. 树莓派Pico开发软件安装(Thonny)及烧录(flash)
  3. python无法打开_python程序无法打开是怎么回事
  4. 论职能线和产品线的部门划分
  5. android 指纹比对方法,指纹识别功能方面对比_手机Android频道-中关村在线
  6. IOS7使用吐槽(抛弃拟物化您还能走多远.........)
  7. Draco代码分析(一) —— Encode过程探究其数据编码方式
  8. 【VMware】Assuming drive cache: write through
  9. MenuetOS-令人不可思议的64位操作系统!-第二辑
  10. oenwrt 进不了bios_J1900在openwrt不能正常重启的BIOS选项说明