hdfs操作java API

1.Configuration类——cof对象

(1)创建

Configuration conf = new Configuration();  
conf.set("fs.defaultFS", "hdfs://localhost:9000"); 
conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");

2.FileSystem类——fs对象

(1)创建

FileSystem fs = FileSystem.get(new URI(conf.get("fs.defaultFS")), conf); 

(2)方法

  • fs.create(hdfsPath, true)  写文件,true表覆盖
  • fs.open(hdfsPath) 读文件
  • fs.append
  • fs.exists(hdfsPath) 判断hdfs文件是否存在
  • fs.close()

3.Path类 

(1)创建

String localFilePath = "/home/hadoop/xsyTest.txt"; // 本地文件路径  
String hdfsFilePath = "input/xsyTest.txt"; // HDFS目标路径
//String hdfsFilePath = "/user/hadoop/input/xsyTest.txt"; // 或该完整路径   
Path localPath = new Path(localFilePath);  
Path hdfsPath = new Path(hdfsFilePath);

(2)hdfs文件是否存在

import org.apache.hadoop.fs.*;
FileSystem fs = FileSystem.get(new URI(conf.get("fs.defaultFS")), conf);  
Path hdfsPath = new Path(hdfsFilePath); 
boolean flag = fs.exists(hdfsPath)

(3)本地文件是否存在

import java.io.*;
String localFilePath = "/home/hadoop/xsyTest.txt"; // 本地文件路径
File fs = new File(localFilePath);
boolean flag = fs.exists();

4.FSDataOutputStream类:FileSystem之上

(1)创建

FSDataOutputStream out = fs.create(hdfsPath, true); // 第二个参数true表示重名覆盖
FSDataOutputStream out = fs.create(hdfsPath); //纯上传未重名

 4.FSDataOutputStream类:FileSystem之上

(1)创建

FSDataInputStream in = fs.open(hdfsPath);

5.BufferedReader类:读文件,FSDataOutputStream之上

(1)创建d对象

(2)读文件d.readLine()

BufferedReader d = new BufferedReader(new InputStreamReader(in))
String line = null;
while ( (line = d.readLine()) != null ) {
    System.out.println(line);
}

6.FileStatus类:封装了文件系统中文件和目录的元数据,包括文件的长度、块大小、备份数、修改时间、所有者以及权限等信息。

RemoteIterator类类似。

 其他内容可以直接输出,数据内容需转换:

Long timeStamp = s.getModificationTime();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = format.format(timeStamp);  
System.out.println("修改时间: " + date);;
//读取文件信息
FileStatus[] fileStatuses = fs.listStatus(hdfsPath);
for (FileStatus s : fileStatuses) {}
//读取目录下所有文件信息
RemoteIterator<LocatedFileStatus> remoteIterator = fs.listFiles(hdfsPath, true);
while (remoteIterator.hasNext()) {
	FileStatus s = remoteIterator.next();}

关系:FileStatus s = remoteIterator.next();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/501539.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GIMP - GNU 图像处理程序 - 工具栏窗口 (Toolbox) 显示

GIMP - GNU 图像处理程序 - 工具栏窗口 [Toolbox] 显示 1. File -> Open2. GIMP 主面板里&#xff0c;右击弹出菜单 -> Tools -> New Toolbox3. Windows -> Dockable Dialogs -> Tool Options4. 工具选项拖动到工具箱里面5. Always On TopReferences GIMP 是跨平…

MySQL的InnoDB引擎的事务原理以及MVCC

目录 一、事务原理 二、redo log 三、undo log 四、MVCC 1.基础概念 2.隐藏字段 3.undolog 4.readview 5.原理分析 一、事务原理 1). 事务 事务 是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或撤销操作…

163.乐理基础-自然小调、音名为何从C开始

如果到这五线谱还没记住还不认识的话去看102.五线谱-高音谱号与103.五线谱-低音谱号这两个里&#xff0c;这里面有五线谱对应的音名&#xff0c;对比着看 如果一章没落下&#xff0c;看到这里&#xff0c;但是看不懂什么意思&#xff0c;那就强行下看&#xff0c;看着看着指不…

UE4_碰撞_射线检测不到物体原因及跳不到圈内的问题

UseSimpleAsComplex 和 UseComplexAsSimple 标记的作用和使用时间。 虚幻引擎 4 中有简单和复杂碰撞形态。 简单碰撞 是基础&#xff0c;如盒体、 球体、胶囊体和凸包。 复杂碰撞 是给定对象的三角网格图。 虚幻引擎 4 会默认创建简单和复杂两种形态&#xff0c;然后基于用户需…

某互联网公司研发人员绩效考核项目成功案例纪实

——产品不确定性强&#xff0c;如何考核研发人员 【行业】互联网行业&#xff1b;高新科技研发行业 【关键词】绩效考核&#xff1b;研发人员&#xff1b;考核指标 M公司是一家定位在高端家用智能设备研发制造的互联网公司&#xff0c;成立于2015年&#xff0c;现有研发人员…

基于springboot实现网页时装购物系统项目【项目源码+论文说明】

基于springboot实现时装购物系统演示 摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;时装购物系统当然也不能排除在外。时装购物系统是以实际运用为开发背景&#xff0c…

Leetcode 剑指 Offer II 071.按权重随机选择

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个正整数数组 w &#xff0c;其中 w[i] 代表下标 i 的权重…

浅谈Spring体系的理解

浅谈Spring知识体系 Spring Framework架构图Spring家族技术生态全景图XMind汇总 本文不涉及细节&#xff0c;主要回答两个问题&#xff1a; Spring家族技术生态全景图有哪些Spring Framework架构下每个模块有哪些东西&#xff0c;以及部分模块之间的关联关系 Spring Framework架…

NC269391 炸鸡块哥哥的粉丝题

题目描述 智乃作为炸鸡块哥哥的粉丝&#xff0c;做了一场炸鸡块哥哥的比赛后得出一个结论&#xff0c;那就是炸鸡块哥哥的话&#xff0c;最多只能信半句。 现在给你一个长度为N的字符串S&#xff0c;请输出前 个字符&#xff0c;表示只能相信半句话。 例如当炸鸡块哥哥说&…

使用uni-app开发微信小程序并实现页面间的跳转

一、下载需要的开发工具 HBuilderX 微信开发者工具 HBuilderX HBuilderX-高效极客技巧 (dcloud.io) 微信开发者工具 下载 / 开发版更新日志 (qq.com) 二、新建项目 通过vue-cli命令行创建项目 参考&#xff1a; uni-app官网 (dcloud.net.cn) 2.1全局安装 vue-cli npm i…

新网站秒收录技术,新网站百度收录时间

在建立新网站后&#xff0c;让它尽快被搜索引擎收录是网站主最为关注的事情之一。百度作为中国最大的搜索引擎&#xff0c;网站被其快速收录对于增加曝光和流量至关重要。本文将介绍一些新网站秒收录技术&#xff0c;以及一般情况下新网站被百度收录需要的时间。 新网站秒收录技…

如何将图片变小到200k?一键图片压缩指定大小

不管是在网站上传资料&#xff0c;还是在社交软件中发送图片&#xff0c;对于图片的体积都是有限制的&#xff0c;比如超出200k就无法操作&#xff0c;这时候简单的做法就是压缩图片大小&#xff0c;下面就给大家总结了几个不错的图片压缩技巧&#xff0c;其中有些方法可以直接…

【OJ】动归练习五之子组串

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 1. 53. 最大子数组和1.1 分析1.2 代码 2. 918. 环形子数组的最大和2.1 分析2.2 代码 3. 152. 乘积最大子数组3.1 分析3.2 代码 4. 1567. 乘积为正数的最长子数组长度4.1 分析4.2 代码 1. 53. 最大子数组和 1.1 分析 一、…

解锁网络新境界:国内IP地址好用的有哪些?

在互联网的世界里&#xff0c;IP地址是每一个网络设备的“身份证”&#xff0c;是实现网络通信的关键。在国内&#xff0c;随着网络技术的不断发展和普及&#xff0c;IP地址的使用和管理也日益受到关注。虎观代理将深入解析国内IP地址的选择与使用&#xff0c;为大家推荐一些好…

爬取b站音频和视频数据,未合成一个视频

一、首先找到含有音频和视频的url地址 打开一个视频&#xff0c;刷新后&#xff0c;找到这个包&#xff0c;里面有我们所需要的数据 访问这个数据包后&#xff0c;获取字符串数据&#xff0c;用正则提取&#xff0c;再转为json字符串方便提取。 二、获得标题和音频数据后&…

XXII Open Cup, Grand Prix of Daejeon C. AND PLUS OR(思维 结论)

题目 给定n(n<20)&#xff0c;再输入2^n个数&#xff0c;分别代表a[0]到a[2^n-1]&#xff0c;第i个数ai(0<ai<1e7) 问是否存在一对下标i、j满足a[i]a[j]<a[i&j]a[i|j] 如果不存在&#xff0c;输出-1&#xff0c;否则输出任意一对(i,j)即可 思路来源 官方题…

Https【Linux网络编程】

目录 一、为什么需要https 二、常见加密方法 1、对称加密 2、非对称加密 3、数据指纹 三、选择什么加密方案&#xff1f; 方案一&#xff1a;对称加密&#xff08;&#xff09; 方案二&#xff1a;双方使用非对称加密&#xff08;效率低&#xff09; 方案三&#xff1a…

电子级高纯PFA材质实验室器皿耗材PFA漏斗PFA试剂瓶PFA烧杯

PFA三角漏斗&#xff0c;整体均是PFA材质&#xff0c;无污染风险&#xff0c;可高压灭菌。 尺寸&#xff1a;外径40mm、160mm PFA三角漏斗 特点&#xff1a; 1、一体式成型&#xff0c;结构稳定&#xff1b; 2、化学耐受性强&#xff0c;耐受强酸、强碱以及各种有机溶剂&…

C语言例3-1:阅读下列程序,写出程序运行的结果。

代码如下&#xff1a; #include <stdio.h> int main(void) {int x8;do{printf("*");x--;x--;}while(x0);printf("\n");return 0; } 结果如下&#xff1a; 分析&#xff1a; do-while语句&#xff0c;先执行后判断先打印 "*" &#xff0…

58集团校园招聘(含内推码)

招聘链接&#xff1a;校招链接 内推码在后文。 内推码 填写我的推荐码&#xff1a;EVBAJS 投递