Eclipse环境基于HDFS的API进行开发

文章目录

  • IOUtils方式读取文件
    • 1.文件准备
    • 2.下载安装Eclipse
    • 3.打开eclipse,新建java项目,添加关于hadoop的一些包
    • 4.包内新建类进行开发
    • 5.利用打包的方式生成java jar包
    • 6.验证代码正确性
  • 其它问题:
    • Exception in thread “main“ java.lang.UnsupportedClassVersionError


IOUtils方式读取文件

1.文件准备

上传README.txt文件到HDFS上,文件内容自定义。

在这里插入图片描述

2.下载安装Eclipse

在这里插入图片描述

在这里插入图片描述

  • 上面的是安装包的方式进行安装,下载好后找到下载位置点击eclipse-inst安装,选择java即可
  • 下面的直接是对应的源码下载,eclipse可以进行多种语言开发,我们选择java版本的
  • 选择上面任意一种方式后,多点几下click here,有的时候有点慢

3.打开eclipse,新建java项目,添加关于hadoop的一些包

新建一个java project,以下红框内方法都行:

在这里插入图片描述

这里选择我们linux系统上安装的java版本,而不用eclipse自带的版本,避免后续的问题(待会会提到):

在这里插入图片描述

创建项目中的包:

在这里插入图片描述

在这里插入图片描述

添加一些我们要用的hadoop的jar包:

在这里插入图片描述

在这里插入图片描述

  • 包在对应的hadoop安装目录:/home/chenqi/hadoop-3.3.6/share/hadoop

  • 将hadoop目录下的common里面的包,和里面lib下面的包导入即可

    在这里插入图片描述

  • 对应的还有hdfs、mapreduce、yarn相关的包,也是同样的操作

4.包内新建类进行开发

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码解析:

package org.chenqi.hadoop.hdfs.fs;import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDatalnputStream;
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) {//设置输入文件路径String uri ="hdfs://master:9000/README.txt";//配置项对象Configuration conf = new Configuration();//初始化FileSystem及输入流对象FSDataInputStreamFileSystem fs = null;FSDataInputStream in = null;try{//给FileSystem对象赋值fs = FileSystem.get(conf);//打开uri位置的文件的输入流in = fs.open(new Path(uri));//使用IO工具类,将输入流拷贝到标准输出流中,每次拷贝4096字节,且流不自动关闭IOUtils.copyBytes(in,System.out,4096,false);}catch(IOException e){e.printStackTrace();}finally{//在finally中,做关闭操作if(in != null){//关闭输入流IOUtils.closeStream(in);}if(fs !=null){try{//关闭文件系统fs.close();}catch(IOException e){e.printStackTrace();}}}}
}
  • 注意:代码中的url为配置hadoop时,在core-site.xml文件中自己设置的hdfs的访问路径

  • 调用FileSystem静态方法get生成File System对象fs(静态get方法有两种重载方式),这里采用了第一种方式。

    在这里插入图片描述

    第二种方式:

    FileSystem fs = FileSystem.get(URl.create(uri),conf);
    
  • 调用fs的open方法返回一个FSDataInputStream流(open方法有两种重载方式),这里采用了第一种方式

    //第一种方式:
    in = fs.open(new Path(uri));//第二种方式:增加了缓冲区
    in = fs.open(new Path(uri),4096);
    

5.利用打包的方式生成java jar包

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.验证代码正确性

提交jar包至HDFS上运行(其中org.chenqi.hadoop.hdfs.fs.FileSystemCat是自定义FileSystemCat类的全限定名),查看结构:显示Readme.txt文件的内容。

hadoop jar FileSystemCat.jar org.chenqi.hadoop.hdfs.fs.FileSystemCat

在这里插入图片描述

内容正确:为我们开头上传到hdfs中的文件

其它问题:

Exception in thread “main“ java.lang.UnsupportedClassVersionError

在这里插入图片描述

解决办法:

eclipse创建项目时默认使用的jdk版本为1.7,但我们Linux系统安装的jdk为1.8,版本不一样导致该问题,改一下eclipse项目使用的jdk版本即可:

在这里插入图片描述

  1. 修改Java Build Path

    右键点击项目,选择“Properties”,依次选择“Java Build Path”->“Libraries”,单击选中“JRE System Library”,然后点击“Edit”按钮进行编辑。选择“Alternate JRE”或“Workspace default JRE”的jdk版本(一般应该相同)均可,点击“Finish”。

    在创建项目的时候,我们已经选择使用系统中的jdk版本,所有一般这里不会有问题

    在这里插入图片描述

    在这里插入图片描述

  2. 修改Java Compiler

选择“Java Compiler”,勾选“Enable project specific settings”,将“Compiler compliance level”设置为与jvm一致的版本(1.8)。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前端】ECMAScript6从入门到进阶

【前端】ECMAScript6从入门到进阶 1.ES6简介及环境搭建 1.1.ECMAScript 6简介 (1)ECMAScript 6是什么 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了。它的目标&#xff…

基于微信小程序的刷题考试系统设计与实现(适用于各类考试类、答题类程序)

文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

【IDEA】使用idea调试时查看对象集合的值

1、在实体类上添加toString方法 2、在要查看集合的地方右键View as→toString 3、View Text复制对象集合的值 4、复制map集合的值同理

[杂谈]-ESP32中的无线通信协议

ESP32中的无线通信协议 文章目录 ESP32中的无线通信协议1、ESP32 无线通信协议简介2、Bluetooth Low Energy (BLE)3、**Bluetooth Classic**4、**ESP-NOW**5、Wi-Fi(客户端-服务器通信协议)6、MQTT7、**LoRa**8、**GSM/GPRS/LTE**9、总结 ESP32是一个基于…

如何使用ArcGIS Pro直接获取道路中心线

以前使用ArcGIS获取道路中心线,需要先将面要素转换为栅格再获取中心线,现在我们可以通过ArcGIS Pro直接获取道路中心线,这里为大家介绍一下获取方法,希望能对你有所帮助。 新建地理数据库 在存储数据的文件夹上点击右键&#xff…

专栏更新情况:华为流程、产品经理、战略管理、IPD

目录 前言 01 华为流程体系入门课 CSDN学院 02 产品经理进阶课 CSDN学院 03 BLM 战略方法论进阶课 04 IPD 进阶 100 例专栏 作者简介 前言 已上线四大课程专栏更新情况: 01 华为流程体系入门课(视频图文); 02 硬件产品经…

Linux文件查找,别名,用户组综合练习

1.文件查看: 查看/etc/passwd文件的第5行 [rootserver ~]# head -5 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologi…

使用YOLOv5的backbone网络识别图像天气 - P9

目录 环境步骤环境设置包引用声明一个全局的设备 数据准备收集数据集信息构建数据集在数据集中读取分类名称划分训练、测试数据集数据集划分批次 模型设计编写维持卷积前后图像大小不变的padding计算函数编写YOLOv5中使用的卷积模块编写YOLOv5中使用的Bottleneck模块编写YOLOv5…

信息安全:网络物理隔离技术原理与应用.

信息安全:网络物理隔离技术原理与应用. 随着网络攻击技术不断增强,恶意入侵内部网络的风险性也相应急剧提高。满足内外网信息及数据交换需求,又能防止网络安全事件出现的安全技术就应运而生了,这种技术称为“物理隔离技术” 基本原…

企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&am…

照片后期处理软件DxO FilmPack 6 mac中文说明

DxO FilmPack 6 for Mac是一款照片后期处理软件。它可以模拟超过60种著名胶片品牌和类型的色彩和颗粒感,使照片具有复古、艺术和时尚风格。 ​DxO FilmPack 6 mac支持RAW和JPG格式的照片,并提供丰富的调整选项,如亮度、对比度、曝光、阴影和高…

web:[极客大挑战 2019]Upload

题目 页面显示为一个上传&#xff0c;猜测上传一句话木马文件 先查看源代码看一下有没有有用的信息&#xff0c;说明要先上传图片&#xff0c;先尝试上传含有一句话木马的图片 构造payload <?php eval($_POST[123]);?> 上传后页面显示为&#xff0c;不能包含<&…

MySQL 索引介绍和最佳实践

目录 一、前言二、索引类型1.1 主键索引&#xff08;PRIMARY KEY&#xff09;1.2 唯一索引&#xff08;UNIQUE&#xff09;1.3 普通索引&#xff08;NORMAL&#xff09;1.3.1 单列普通索引1.3.2 单列前缀普通索引1.3.3 多列普通索引1.3.4 多列前缀普通索引 1.4 空间索引&#x…

微信小程序开发基础(一)认识小程序

微信小程序&#xff0c;小程序的一种&#xff0c;英文名Wechat Mini Program&#xff0c;是一种不需要下载安装即可使用的应用&#xff0c;它实现了应用“触手可及”的梦想&#xff0c;用户扫一扫或搜一下即可打开应用。微信小程序是一种不用下载就能使用的应用&#xff0c;也是…

React(react18)中组件通信06——redux-toolkit + react-redux

React&#xff08;react18&#xff09;中组件通信06——redux-toolkit react-redux 1 前言1.1 redux 和 react-redux1.2 关于redux-toolkit1.2.1 官网1.2.2 为什么要用Redux Toolkit&#xff1f; 1.3 安装 Redux Toolkit1.4 Redux Toolkit相关API 2. 开始例子——官网例子2.1 …

更直观地学习 Git 命令

theme: condensed-night-purple 前言 本文参考于 Learn Git Branching 这个有趣的 Git 学习网站。 在该网站&#xff0c;可以使用 show command 命令展示所有可用命令。 你也可以直接访问网站的sandbox&#xff0c;自由发挥。 本地篇 基础篇 git commit git commit将暂…

文件I/O与标准I/O

如果不知道inode&#xff0c;请看这篇文章inode 我们知道当打开一个文件时&#xff0c;OS会先使用inode编号在磁盘文件系统里面去寻找这个文件&#xff0c;找到以后根据文件的属性为其创建一个内核层面的结构体来描述这个文件&#xff0c;该结构体里面含有文件的属性信息&#…

蓝桥杯 题库 简单 每日十题 day11

01 质数 质数 题目描述 给定一个正整数N&#xff0c;请你输出N以内&#xff08;不包含N&#xff09;的质数以及质数的个数。 输入描述 输入一行&#xff0c;包含一个正整数N。1≤N≤10^3 输出描述 共两行。 第1行包含若干个素数&#xff0c;每两个素数之间用一个空格隔开&…

SpringMVC+统一表现层返回值+异常处理器

一、统一表现层返回值 根据我们不同的处理方法&#xff0c;返回的数据格式都会不同&#xff0c;例如添加只返回true|false&#xff0c;删除同理&#xff0c;而查询却返回数据。 Result类 为此我们封装一个result类来用于表现层的返回。 public class Result {//描述统一格式…

测试OpenCvSharp库的模板匹配功能

微信公众号“Dotnet讲堂”的文章《c#实现模板匹配&#xff0c;并输出匹配坐标》&#xff08;参考文献1&#xff09;中介绍了采用OpenCVSharp库实现模板匹配功能&#xff0c;也即在目标图片中定位指定图片内容的示例&#xff0c;本文参照参考文献1-4&#xff0c;学习并测试OpenC…