idea Java API 操作 HDFS
创始人
2025-05-31 22:56:14
0

文章目录

  • 一、 hadoop window配置
    • 1.1 hadoop_home环境变量配置
    • 1.2 Hadoop里的Java路径配置
  • 二、IDE远程管理HDFS
    • 1.创建maven,导入pom.xml依赖
    • 2.案例测试


提示:以下是本篇文章正文内容,下面案例可供参考

一、 hadoop window配置

hadoop tar包解压

1.1 hadoop_home环境变量配置

在这里插入图片描述

1.2 Hadoop里的Java路径配置

D:\hadoop-3.3.4\etc\hadoop\hadoop-env.cmd文件修改
(因program file 有空格。用PROGRA~1代替)
set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_241

在这里插入图片描述
在这里插入图片描述

下载windows下连接hadoop需要的文件hadoop.dll和winutils.exe(https://github.com/
下载apache-hadoop-3.1.1-winutils-master)

二、IDE远程管理HDFS

1.创建maven,导入pom.xml依赖

在这里插入图片描述
在这里插入图片描述

  org.apache.hadoophadoop-client3.3.1

2.案例测试

读取数据(示例):

package hdfs.demo;import java.io.InputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class FileSystemCat {public static void main(String[] args) throws Exception {//创建配置文件对象,加载配置文件中的配置信息//默认读取core-default.xml hdfs-default.xml mapred-defalt.xml yarn-default.xml// 属性优先级:代码中设置>-site.xml>-default.xmlConfiguration conf = new Configuration();// 设置HDFS访问地址conf.set("fs.default.name", "hdfs://192.168.10.101:9820");// 取得FileSystem文件系统实例FileSystem fs = FileSystem.get(conf);//System.out.println(fs.getClass().getName());// 打开文件输入流InputStream in = fs.open(new Path("hdfs:/input/README.txt"));// 输出文件内容IOUtils.copyBytes(in, System.out, 4096, false);// 关闭输入流IOUtils.closeStream(in);}
}

创建目录

package hdfs.demo;import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class CreateDir {public static void main(String[] args) throws IOException {Configuration conf = new Configuration();conf.set("fs.default.name", "hdfs://192.168.10.101:9820");FileSystem hdfs = FileSystem.get(conf);// 创建目录boolean isok = hdfs.mkdirs(new Path("hdfs:/mydir"));if (isok) {System.out.println("创建目录成功!");} else {System.out.println("创建目录失败!");}hdfs.close();}
}

package hdfs.demo;import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.Progressable;
/*** HDFS Java API文件操作*/
public class HDFSDemo {public static void main(String[] args) throws Exception {createFile();outFile();deleteFile();copyFromLocalFile();copyToLocalFile();updateFlileProgress();deleteFile();}/*** 定义创建文件方法*/public static void createFile() throws Exception {Configuration conf = new Configuration();conf.set("fs.default.name", "hdfs://192.168.170.133:9000");FileSystem fs = FileSystem.get(conf);// 打开一个输出流FSDataOutputStream outputStream = fs.create(new Path("hdfs:/newfile2.txt"));// 写入文件内容outputStream.write("我是文件内容".getBytes());outputStream.close();fs.close();System.out.println("文件创建成功!");}// 删除文件public static void deleteFile() throws Exception {Configuration conf = new Configuration();conf.set("fs.default.name", "hdfs://192.168.170.133:9000");FileSystem fs = FileSystem.get(conf);Path path = new Path("hdfs:/newfile2.txt");boolean isok = fs.deleteOnExit(path);if (isok) {System.out.println("删除成功!");} else {System.out.println("删除失败!");}fs.close();}// 复制上传本地文件public static void copyFromLocalFile() throws Exception {// 1.创建配置器Configuration conf = new Configuration();conf.set("fs.default.name", "hdfs://192.168.170.133:9000");// 2.取得FileSystem文件系统 实例FileSystem fs = FileSystem.get(conf);// 3.创建可供hadoop使用的文件系统路径Path src = new Path("D:/copy_test.txt"); // 本地目录/文件Path dst = new Path("hdfs:/"); // 目标目录/文件// 4.拷贝上传本地文件(本地文件,目标路径) 至HDFS文件系统中fs.copyFromLocalFile(src, dst);System.out.println("文件上传成功!");}// 监控文件上传进度public static void updateFlileProgress() throws Exception {Configuration conf = new Configuration();conf.set("fs.default.name", "hdfs://192.168.170.133:9000");InputStream in=new BufferedInputStream(new FileInputStream("D:/soft/test.zip"));FileSystem fs = FileSystem.get(conf);//上传文件并监控上传进度FSDataOutputStream outputStream = fs.create(new Path("hdfs:/test.zip"), new Progressable() {public void progress() {//回调方法显示进度System.out.print(".");}});IOUtils.copyBytes(in, outputStream, 4096, false);}// 复制下载文件public static void copyToLocalFile() throws Exception {// 1.创建配置器Configuration conf = new Configuration();conf.set("fs.default.name", "hdfs://192.168.170.133:9000");// 2.取得FileSystem文件系统 实例FileSystem fs = FileSystem.get(conf);// 3.创建可供hadoop使用的文件系统路径Path src = new Path("hdfs:/newfile2.txt");// 目标目录/文件Path dst = new Path("D:/new.txt"); // 本地目录/文件// 4.从HDFS文件系统中拷贝下载文件(目标路径,本地文件)至本地// fs.copyToLocalFile(src, dst);fs.copyToLocalFile(false, src, dst, true);System.out.println("文件下载成功!");}// 查看文件内容并输出public static void outFile() throws Exception {// 1.创建配置器Configuration conf = new Configuration();conf.set("fs.default.name", "hdfs://192.168.170.133:9000");// 2.取得FileSystem文件系统 实例FileSystem fs = FileSystem.get(conf);InputStream in = fs.open(new Path("hdfs:/newfile2.txt"));IOUtils.copyBytes(in, System.out, 4096, false);IOUtils.closeStream(in);}}

相关内容

热门资讯

纪录片筑梦中国观后感【汇总】 ...  【篇一】  《筑梦中国——中华民族复兴之路》今晚20:30在新闻频道首播。该片通过回顾鸦片战争以来...
摩登时代电影观后感 摩登时代电... 【篇一】  昨晚看的《摩登时代》,至今不能让我释怀。最近看电影很多,也被感动过很多次。可只有《摩登时...
电影天上的菊美观后感汇总 观看... 【篇一】  《天上的菊美》在四川地区公映。该片在峨眉电影集团2号摄影棚举行隆重首映式,本片导演苗月、...
电影桔子的天空观后感400字 ...   【篇一】  今天,我们班看了一部电影,名叫《桔子的天空》,有个小孩给我的印象比较深刻,叫福果,福...
关于双12淘宝活动方案 关于双...  【篇一】  活动时间:12月7日到12月15日 主题:这次活动主要以满就减、满就送、满就抽奖等形式...
最新或2023(历届)圣诞活动...  【篇一】  1.活动目的:作为西方的传统节日,圣诞节是特别重要也是特别有意义的一个节日。在西方,圣...
秉公执法人民公安为人民剖析材料... 【篇一】  反映的问题作出重要批示,基层干部不作为、乱作为、贪腐以及执法不公等问题,损害群众切身利益...
幼儿园感恩节主题活动方案 感恩...  【篇一】  一、大活动目标  将感恩的种子播撒在幼儿的心田  二、大活动名称  “感恩你我,真情成...
三严三实专题交流发言材料【汇总... 【篇一】  书记关于“三严三实”的重要论述,质朴凝练、内涵深刻,立意高远,具有重大现实针对性和深远历...
关于班组建设经验交流材料 安全... 【篇一】  自主管理是班组管理的最高境界,也是搞好班组建设的最高追求。***工序在上级相关部门的帮助...
纪检干部三严三实对照检查材料 ... 【篇一】  坚定理想信念,做到“三个绝对”。武警部队肩负着维护政权安全的重大职责,牢牢把握“三严三实...
平安夜为什么要送苹果的原因 平...   平安果,是一种中国人以自己的方式莫名其妙的过着外国人的宗教节日。平安果用苹果,取苹的谐音,意为平...
最新或2023(历届)12月1...   艾滋病是一种危害性极大的传染病,由感染艾滋病病毒(HIV病毒)引起。HIV是一种能攻击人体免疫系...
最新或2023(历届)校园艾滋...   一、活动目的  通过预防艾滋病宣传进校园活动,让师生掌握艾滋病防治相关知识,提高师生对艾滋病的自...
平安夜为什么要送苹果 平安夜送...   平安夜虽然不是我们中国人的节日,但是我们都知道平安夜是要送苹果的,那么,为什么平安夜要送苹果呢?...
最新或2023(历届)平安夜活... 一 活动主题:欢乐的圣诞拉近你我的距离,温馨的苹果传递浓浓的情意。为贫困学生贡献一份力量,更为你的朋...
最新或2023(历届)圣诞节平...  平安夜是几月几日?平安夜,即圣诞前夕(12月24日),在大部份基督教社会是圣诞节庆祝节日之一,但现...
最新或2023(历届)学校班级...  一、活动主题  浓情“苹”安夜,温暖你我心  二、活动背景  最新或2023(历届)已经将近尾声,...
最新或2023(历届)平安夜活...   一、主题和效果:  愿快乐永远跟随着您!  (May happiness follow wher...
最新或2023(历届)平安夜活...   一、活动主题  浓情“苹”安夜,温暖你我心  二、活动背景  最新或2023(历届)已经将近尾声...