记录Java读取hdfs上的文件全过程

这篇具有很好参考价值的文章主要介绍了记录Java读取hdfs上的文件全过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章目录

前言

一、项目大体流程

二、详细步骤

1.在idea里面创建空项目(小白也能看懂)

2.导入所需的jar包

2.输入代码后就可以实现了

总结


前言

        跟着白哥学Java,今天就来分享一下Java如何上传文件到hdfs上面,


提示:以下是一点见解

一、项目大体流程

        我们想要上传到hdfs,首先就得知道hdfs是什么东西:

        本质:HDFS的中文翻译是Hadoop分布式文件系统(Hadoop Distributed File System)。它本质还是程序,主要还是以树状目录结构来管理文件(和linux类似,/表示根路径),且可以运行在多个节点上(即分布式)。

        解决的问题:存储海量离线数据(如TB、PB、ZB级别的数据),并且保证数据高可用,支持高并发访问。注:不适合将大量的小文件存到HDFS。(主要原因:HDFS的NameNode进程在内存中存储文件的元数据,故文件越多,消耗的内存就越大。大量的小文件,耗尽NameNode节点的内存,而实际存的文件总量却很小,HDFS存海量数据的优势没有发挥出来)

        架构:HDFS的架构如下,其中在Linux端的详细部署就不一一赘述了

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

 我们的项目构成如下:

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

二、详细步骤

1.在idea里面创建空项目(小白也能看懂)

图解(示例):

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

 java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

 注意:一般idea会自带一个jdk是20以上的,如果版本不和心意,也可以点下载,选择合适的jdkjava 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

 java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

 java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

 java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

 好的,这样子我们就得到一个空项目了java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

2.导入所需的jar包

        新建一个项目后,将HDFS相关的jar包引入到项目中,目的是调用HDFS提供的相关的类、方法。我们现在将所需要的jar依赖导入进来,接下来要进行导包:

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

java 读hdfs,java基础+进阶,java,开发语言,ide,hdfs,hadoop

2.输入代码后就可以实现了

 public static void main(String[] args) throws IOException {
        if(args.length == 0){
            System.out.println("创建失败,请传入一个路径参数指定要读取的文件");
            return;
        }
        String feilePath = args[0];
        System.out.println("传入的名字是:"+feilePath);

        //1.创建词汇表Configuration类型的对象
        Configuration conf =  new Configuration();
        conf.set("fs.defaultFS","hdfs://20210322045-master:9000");

        FileSystem fs = FileSystem.get(conf);
        FSDataInputStream fsDataInputStream = fs.open(new Path(feilePath));
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fsDataInputStream));

        //读取文件第一行字符串,如果返回null,表明已经读取到文件的末尾
        String nextLine = bufferedReader.readLine();

        //如果没有读取到末尾,则继续读取
        while (null != nextLine){
            //将读取到的数据输出到控制台
            System.out.println(nextLine);
            nextLine = bufferedReader.readLine();
        }
        fs.close();
    }

图解(示例):

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。文章来源地址https://www.toymoban.com/news/detail-692975.html

到了这里,关于记录Java读取hdfs上的文件全过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ShaderToy着色器移植到Three.js全过程记录

    推荐:用 NSDT设计器 快速搭建可编程3D场景。 作为 Publicis Pixelpark Innovationlab 研究的一部分,我们研究了如何将较低底层的语言用于网络技术。 显而易见的选择似乎是 asm.js 或 WebAssembly。 但你也可以使用 WebGL 着色器来解决面向机器的问题。 着色器使用类似于 C/C++ 的语言进行

    2024年02月13日
    浏览(50)
  • 记录在linux上使用科大讯飞的语音识别的全过程

            1.网址讯飞开放平台-以语音交互为核心的人工智能开放平台 (xfyun.cn)。         2.登录上述网站。         3.点击控制台,创建应用。         4.再在网页中找到语音听写功能,就是本次需要使用到的语音转文字功能,有很多入口可以进入,进入后请自行查看相关介

    2024年04月13日
    浏览(44)
  • OpenWRT LEDE在Ubuntu22.04 编译全过程记录

    注, feeds用法 查看更新的订阅源信息,index file feeds/packages.index 【问题1】m4 编译错误 解决,参考博文 【问题2】 freadahead 异常 解决,参考博文 注意 : 参考博文中的 _IO_IN_BAXKUP 应该为 _IO_IN_BACKUP ,否则会导致下述报错,此文为正确写法 【问题3】 bison-3.0.4 相关错误 解决,参考

    2024年02月12日
    浏览(117)
  • 记录一次云原生线上服务数据迁移全过程

    校园 e 站,一群大学生在毕业前夕,为打破信息差而开发的一个校园论坛。一个从零到一全靠一群大学生的满腔热忱而打造的一个前后端分离以小程序为最终展示载体的一个微服务架构体系的 App。并发量的初始定位为 w 级,使用到多级缓存、数据分库等等前沿技术,当然这也

    2024年02月04日
    浏览(60)
  • (小白全过程记录)Ubuntu下伪分布式Hadoop环境搭建

    目录 0.准备 1.Hadoop伪分布式环境搭建 2.安装ssh,配置ssh无密码登录 3.通过拖拽的方式将文件从windows传到linux桌面 5.安装hadoop 6.修改hadoop环境变量 7.修改配置文件 core-site.xml 8.修改配置文件hdfs-site.xml文件 9.执行NameNode的格式化 10.开启NameNode和DataNode守护进程 11.访问web页面 12.关闭

    2024年02月03日
    浏览(49)
  • Python Apex YOLO V5 6.2 目标检测 全过程记录

    博文目录 效果展示 Python YOLO V5 实时截屏与目标检测 GitHub Windows Python PyCharm 开发环境搭建 Windows Python PyTorch CUDA 11.7 TensorRT 环境配置 先根据上述两篇文章将开发环境和虚拟环境都创建好, 然后下载 YOLO V5 6.2 或 YOLO V5 7.0 (最新) 的源码, 用 PyCharm 打开, 选择刚刚创建的虚拟环境 W

    2024年02月03日
    浏览(54)
  • 记录--『uni-app、小程序』蓝牙连接、读写数据全过程

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 这是一次真实的 蓝牙收发数据 的全过程讲解。 本文使用 uni-app + Vue3 的方式进行开发,以手机app的方式运行(微信小程序同样可行)。 uni-app 提供了 蓝牙 和 低功耗蓝牙 的 api ,和微信小程序提供的 api 是一样

    2024年01月21日
    浏览(53)
  • 研一小白记录第一次在实验室服务器上跑深度学习的代码全过程(实验室服务器上跑代码详细全过程哦)

    你在服务器上跑过代码吗?哇~你跑过!是啥样的...每回见别人跑都会问并且羡慕会在大服务器上跑代码的哈哈哈在研究生刚开学前还甚至不知道什么是服务器,更是无法想象在除了自己能看得见摸得着的电脑屏幕之外跑代码的样子。直到有天开会自己坐在了一个大大的“黑箱

    2024年02月02日
    浏览(55)
  • 在CentOS上用yum方式安装MySQL8真实全过程记录(顺利版本)

    此文参考我前面的文章《在CentOS上用yum方式安装MySQL8过程记录》,之前比较曲折,现在再安装一台mysql。 因为之前很多坑已经走过,加上这台Linux之前没安装过MYSQL,所以整个过程算是非常顺利。 安装环境:centos7 mysql版本:8.0.35 (为方便理解,以下为完整过程 ) 然后直接使

    2024年02月07日
    浏览(53)
  • 【基于Ubuntu20.04的Autoware.universe安装过程】方案三:Docker | 详细记录 | 全过程图文 by.Akaxi

    目录 一、Autoware.universe背景 二、安装说明 三、安装git 四、克隆autoware 五、安装cuda 六、安装Docker软件 七、安装Nvidia Container Toolkit 八、安装Rocker 九、拷贝Autoware的Docker镜像 十、创建autoware_map文件夹 十一、启动docker 十二、源码拷贝 十三、安装依赖 十四、编译Autoware.universe 十

    2024年04月10日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包