用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上的文件内容相关推荐

  1. java读取大txt文件_使用java读取txt里边的文件内容并获取大小(M).txt

    package com; import java.io.File; import java.io.*; import java.io.FileInputStream; import java.io.F ...

  2. Spark读取HDFS上的Snappy压缩文件所导致的内存溢出问题 java.lang.OutOfMemoryError: GC overhead limit exceeded

    报错java.lang.OutOfMemoryError: GC overhead limit exceeded HDFS上有一些每天增长的文件,使用Snappy压缩,突然某天OOM了 1.原因: 因 ...

  3. java获取服务器上指定文件,java 读取服务器上文件

    java 读取服务器上文件 [2021-02-04 10:02:14]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...

  4. python读写文件绝对路径_[Spark][Python]对HDFS 上的文件,采用绝对路径,来读取获得 RDD...

    对HDFS 上的文件,采用绝对路径,来读取获得 RDD: In [102]: mydata=sc.textFile("file:/home/training/test.txt") ...

  5. [Spark][Python]对HDFS 上的文件,采用绝对路径,来读取获得 RDD

    对HDFS 上的文件,采用绝对路径,来读取获得 RDD: In [102]: mydata=sc.textFile("file:/home/training/test.txt") ...

  6. java 读取hdfs文件,注意事项

    昨天在写java读取hdfs文件的时候一直报错 java.io.IOException: No FileSystem for scheme: hdfs ,这个问题纠结了很长时间(尝试添加core-si ...

  7. HDFS上传文件报错java.lang.InterruptedException

    使用hdfs上传文件时报错, java.lang.InterruptedExceptionat java.lang.Object.wait(Native Method)at java.lang.Thr ...

  8. java解析yml文件_如何基于JAVA读取yml配置文件指定key内容

    这篇文章主要介绍了如何基于JAVA读取yml配置文件指定key内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先引入需要的依赖 org.yaml ...

  9. java 读取raw文件_Android 读取assets和raw文件内容实例代码

    这篇文章主要介绍了Android 读取assets和raw文件内容的相关资料,并附简单实例代码,需要的朋友可以参考下 android之文件操作--读取assets和raw文件下的内容 1.分别创建as ...

最新文章

  1. SAP MM MIGO界面里的'Delivery completed'标记
  2. C++ code:string stream(string流)学习大全
  3. 调用带有 out 参数的方法时检查弃元参数
  4. 2019 wannafly winter camp day5-8代码库
  5. C# 从Excel中读取时间数据
  6. Java Kafka 简单示例
  7. 拼多多的硬核逆生长!
  8. MySQL数据库权限操作指南
  9. Java学习笔记之设计模式(1)设计模式简介
  10. 不干胶标贴打印模板下载_使用Word制作不干胶标签的方法
  11. PLC对接SQL数据库,实现数据采集和边缘计算
  12. 嵌入式平台C语言实现二阶滤波器
  13. 2022年汽车修理工(中级)上岗证题库及答案
  14. Linux C/C++程序员 但行好事 莫问前程 Linux系统下 解决Qt5无法连接MySQL数据库的方法
  15. Unity一般工程升级到HDRP
  16. 学校做计算机教室锐捷,云课堂:让学生爱上每一节课
  17. 学python可以从事什么工作,python是做什么的软件
  18. VBA小程序_对于选中的单元格进行取消合并_选择空值向上填充
  19. OpenCV中图像的深度
  20. 消费者洞察:数据化闭环洞察消费者

热门文章

  1. 2020-11-30 网络爬虫
  2. superoj738 诸葛亮
  3. windows 7 开机错误 未能连接到一个Windows服务
  4. (node:13684) UnhandledPromiseRejectionWarning: Unhandled promise rejection
  5. 大话设计模式:模板方法模式
  6. H.264的两个概念:DC系数和AC系数
  7. 微信小程序获取右上角胶囊距顶部的距离和胶囊的尺寸
  8. 在word中如何设置翻译功能?原来word还能翻译多种语言!
  9. openwrt消息通知方式linux,openwrt路由器也享受时钟报时快感编码过程
  10. 2022山东国际养老服务业博览会,智慧养老产业展会