java 读取hdfs上的文件内容
用java读取hdfs的文件
直接撸代码:
package com.nature.base.util;import com.nature.component.process.vo.DebugDataResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.slf4j.Logger;import java.io.*;
import java.net.URI;
import java.util.*;/*** 操作hdfs文件的工具类*/public class HdfsUtils {private static Logger logger = LoggerUtil.getLogger();/*** 读取hdfs指定路径的内容*/public static String gethdfsData(String hdfsPath){String result = "";if(com.nature.third.utils.StringUtils.isNotEmpty(hdfsPath)){Path path = new Path(hdfsPath);Configuration configuration = new Configuration();FSDataInputStream fsDataInputStream = null;FileSystem fileSystem = null;BufferedReader br = null;// 定义一个字符串用来存储文件内容try {fileSystem = path.getFileSystem(configuration);fsDataInputStream = fileSystem.open(path);br = new BufferedReader(new InputStreamReader(fsDataInputStream));String str2;while ((str2 = br.readLine()) != null) {// 遍历抓取到的每一行并将其存储到result里面result += str2 + "\n";}} catch (IOException e) {e.printStackTrace();} finally {if(br!=null){try {br.close();} catch (IOException e) {e.printStackTrace();}}if(fsDataInputStream!=null){try {fsDataInputStream.close();} catch (IOException e) {e.printStackTrace();}}if(fileSystem!=null){try {fileSystem.close();} catch (IOException e) {e.printStackTrace();}}}logger.debug("文件内容:" + result);}return result;}}
核心方法:
Path path = new Path("hdfs://192.168.1.111:9000/test/1234log");
Configuration configuration = new Configuration();
FileSystem fileSystem = path.getFileSystem(configuration);
FSDataInputStream fsDataInputStream = fileSystem.open(path);
注意我加的那些编码格式,可以防止中文乱码!!
这种方式即可以读取hdfs上面的文件也可以读取本地文件
java 读取hdfs上的文件内容相关推荐
- java读取大txt文件_使用java读取txt里边的文件内容并获取大小(M).txt
package com; import java.io.File; import java.io.*; import java.io.FileInputStream; import java.io.F ...
- Spark读取HDFS上的Snappy压缩文件所导致的内存溢出问题 java.lang.OutOfMemoryError: GC overhead limit exceeded
报错java.lang.OutOfMemoryError: GC overhead limit exceeded HDFS上有一些每天增长的文件,使用Snappy压缩,突然某天OOM了 1.原因: 因 ...
- java获取服务器上指定文件,java 读取服务器上文件
java 读取服务器上文件 [2021-02-04 10:02:14] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...
- python读写文件绝对路径_[Spark][Python]对HDFS 上的文件,采用绝对路径,来读取获得 RDD...
对HDFS 上的文件,采用绝对路径,来读取获得 RDD: In [102]: mydata=sc.textFile("file:/home/training/test.txt") ...
- [Spark][Python]对HDFS 上的文件,采用绝对路径,来读取获得 RDD
对HDFS 上的文件,采用绝对路径,来读取获得 RDD: In [102]: mydata=sc.textFile("file:/home/training/test.txt") ...
- java 读取hdfs文件,注意事项
昨天在写java读取hdfs文件的时候一直报错 java.io.IOException: No FileSystem for scheme: hdfs ,这个问题纠结了很长时间(尝试添加core-si ...
- HDFS上传文件报错java.lang.InterruptedException
使用hdfs上传文件时报错, java.lang.InterruptedExceptionat java.lang.Object.wait(Native Method)at java.lang.Thr ...
- java解析yml文件_如何基于JAVA读取yml配置文件指定key内容
这篇文章主要介绍了如何基于JAVA读取yml配置文件指定key内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先引入需要的依赖 org.yaml ...
- java 读取raw文件_Android 读取assets和raw文件内容实例代码
这篇文章主要介绍了Android 读取assets和raw文件内容的相关资料,并附简单实例代码,需要的朋友可以参考下 android之文件操作--读取assets和raw文件下的内容 1.分别创建as ...
最新文章
- SAP MM MIGO界面里的'Delivery completed'标记
- C++ code:string stream(string流)学习大全
- 调用带有 out 参数的方法时检查弃元参数
- 2019 wannafly winter camp day5-8代码库
- C# 从Excel中读取时间数据
- Java Kafka 简单示例
- 拼多多的硬核逆生长!
- MySQL数据库权限操作指南
- Java学习笔记之设计模式(1)设计模式简介
- 不干胶标贴打印模板下载_使用Word制作不干胶标签的方法
- PLC对接SQL数据库,实现数据采集和边缘计算
- 嵌入式平台C语言实现二阶滤波器
- 2022年汽车修理工(中级)上岗证题库及答案
- Linux C/C++程序员 但行好事 莫问前程 Linux系统下 解决Qt5无法连接MySQL数据库的方法
- Unity一般工程升级到HDRP
- 学校做计算机教室锐捷,云课堂:让学生爱上每一节课
- 学python可以从事什么工作,python是做什么的软件
- VBA小程序_对于选中的单元格进行取消合并_选择空值向上填充
- OpenCV中图像的深度
- 消费者洞察:数据化闭环洞察消费者
热门文章
- 2020-11-30 网络爬虫
- superoj738 诸葛亮
- windows 7 开机错误 未能连接到一个Windows服务
- (node:13684) UnhandledPromiseRejectionWarning: Unhandled promise rejection
- 大话设计模式:模板方法模式
- H.264的两个概念:DC系数和AC系数
- 微信小程序获取右上角胶囊距顶部的距离和胶囊的尺寸
- 在word中如何设置翻译功能?原来word还能翻译多种语言!
- openwrt消息通知方式linux,openwrt路由器也享受时钟报时快感编码过程
- 2022山东国际养老服务业博览会,智慧养老产业展会