版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训2.3HDFS的读写API操作1.实训目的通过本实训使学生学会在本地(Windows环境)编写Java代码,学会用离线工程编写HDFS的读写操作,并且学会打包工程上传到服务器执行。2.实训内容该实训需要每位学生在已搭建HDFS开发环境上编写了HDFS写、读程序代码;并打包项目,在集群环境上执行该程序。3.实训要求以小组为单元进行实训,每小组5人,小组自协商选一位组长,由组长安排和分配实训任务,具体参考实训操作环节。4.准备知识(1)IDEA编辑器介绍IDEA全称是IntelliJIDEA,是Java语言开发的集成环境(也可用于其他语言),IntelliJ在业界被公认为最好的java开发工具之一,特别是在智能代码助手、代码自动提示、重构、SFTP、FTP、J2EE支持、代码审查、Ant、JUnit、CVS整合、创新的GUI设计等方面,发挥着巨大的作用。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。IDEA的版本分为商业版本与开源版本,对比如图2-50所示。图2-50IDEA编辑器版本对比(2)Java实现文件读写在操作HDFS的读写操作之前,我们最好有一点Java基础,比如说Java是怎么实现Java的文件读写的。下面列举几种Java的读写文件方式,供大家自行搜索资料学习。方式一:InputStream、OutputStream方式二(缓存字节流):BufferedInputStream、BufferedOutputStream使用方式与字节流差不多,但是效率比后者更高(推荐使用)。方式三:InputStreamReader、OutputStreamWriter方式四:BufferedReader、BufferedWriter方式五:Reader、PrintWriter建议使用第二种方式BufferedInputStream、BufferedOutputStream。5.实训步骤(1)前提工作①需要提前安装好Windows系统上的JDK,本实训教程安装的版本为:jdk-11.0.6。②需要将Hadoop的安装包解压在Windows系统上的某一路径。③需要安装好IDEA编辑器,本次实训使用的版本为:ideaIC-2022.2.3。(2)新建Java项目①打开IDEA后,新建一个项目,点击“NewProject”,如图2-51所示。图2-51项目类型选择在弹出的窗口中,完成以下配置,如图2-52所示。项目名称:hadoop-projectJDK:选择自己Windows上安装的JDK图2-52完成相应配置然后点击窗口下方的“Create”,接着会新建好项目。(3)项目配置①右击“src”,选择“New”,点击“Package”,建一个包,名为:“com.bigdata”,如图2-53所示。图2-53新建包②然后编辑项目结构,点击“File”,点击“ProjectStructure”按钮,如图2-54所示。图2-54编辑项目结构③点击“Libraries”,引入编写HDFS程序相关的jar包依赖。具体操作:点击“Libraries”→“+”→“Java”,然后找到解压后的Hadoop安装包,导入一个是公共依赖包,如图2-57所示。图2-57导入HDFS公共依赖包导入HDFS其他的相关依赖包,如图5-58所示。图2-58导入HDFS相关依赖包(4)编写HDFS代码在com.bigdata包里新建一个WriteFile类,编写WriteFile类代码,代码如下:packagecom.bigdata;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FSDataOutputStream;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.Path;importjava.io.IOException;import.URI;publicclassWriteFile{publicstaticvoidmain(String[]args)throwsIOException{Stringcontent="Hello,bigdata!";Stringdest="hdfs://master:8020/test.txt";Configurationconfiguration=newConfiguration();FileSystemfileSystem=FileSystem.get(URI.create(dest),configuration);FSDataOutputStreamout=fileSystem.create(newPath(dest));out.write(content.getBytes("UTF-8"));out.close();}}注意:请按照实际情况修改master的主机名!(5)编写HDFS读操作代码在com.bigdata包里新建一个ReadFile类,编写ReadFile类,代码如下:packagecom.bigdata;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FSDataInputStream;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.Path;importjava.io.*;import.URI;publicclassReadFile{publicstaticvoidmain(String[]args)throwsIOException{Stringdest="hdfs://master:8020/test.txt";Configurationconfiguration=newConfiguration();FileSystemfileSystem=FileSystem.get(URI.create(dest),configuration);FSDataInputStreamin=fileSystem.open(newPath(dest));BufferedReaderbufferedReader=newBufferedReader(newInputStreamReader(in));Stringline=null;while((line=bufferedReader.readLine())!=null){System.out.println(line);}in.close();}}(6)打包代码到服务器①点击“ProjectStructure”→“Artifacts”→“+”→“JAR”→“Frommoduleswithdependencies...”,如图2-59所示。图2-59添加JAR②点击之后会弹出设置界面,如图2-60所示。图2-60jar包配置因为我们有几个main方法,所以我们可以不选择“MainClass”,直接点击“OK”即可。③因为服务器上已经有了相应的jar包,所以需要排除掉再打包。点击“Artifacts”→“hadoop-project:jar”→“OutputLayout”,勾选相应的jar包,点击“-”进行移除。如图2-61所示。图2-61删除多余的JAR包然后一直点击“OK”即可。(7)打包操作①打包之前,有一点需要特别注意,如果你的服务器上的JDK版本是8,而在Windows的版本为jdk11的话,需要设置一下打包的项目语言级别才能兼容。点击“ProjectStructure”→“Project”,在“LanguageLevel”选择服务器上相应的语言级别,JDK8对应的是8级别,如图2-62所示。图2-62选择对应的语言级别②点击菜单栏的“Build”→“BuildArtifacts...”,在弹出的选项中,选择“Build”即可。如图2-64所示。图2-64构建jar包④稍等一会,执行完后就可以看到out目录生成了一个jar包,如图2-65所示。图2-65查看生成的jar包(8)上传服务器并执行①使用MobaXterm工具上传jar包到master节点的/root/jars文件夹(没有此目录则新建创建)。如图2-所示。图2-查看jar包上传结果②启动HDFS(如果启动则无需进行)start-dfs.sh③执行jar包(在jar包所在的路径下,此处路径为:/root/jars)
先执行HDFS的写操作代码(如HDFS上已有/test.txt文件会报错,请先删除或者更换代码里的文件名):hadoopjarhadoop-project.jarcom.bigdata.WriteFile查看是否写内容进去,查看结果如图2-67所示。hdfsdfs-cat/test.txt图2-67查看写文件结果展示执行完后发现已经可以查看到有写入了数据,然后执行读取HDFS数据的代码,读取结果如图6-68所示。hadoopjarhadoop-project.jarcom.bigdata.ReadFile图2-68执行读文件结果展示可以看到有结果输出。6.实训总结本次实训主要是在IDEA上编写HDFS读、写操作程序代码,并打包在集群环境上执行;学生通过本次实训的学习,可以加深对HDFS的读写逻辑以及编程原理的认识。本实训不用联网也可以执行HDFS的读写操作,此外,一样也可以执行Spark、机器学习等案例。本实训非常关键,因为网络不好或者是简单的项目,这种传统的方式也是非常简单方便的。总览整一个操作流程,下面总结一下同学们在操作过程中比较容易遇到的错误:同学们可能分不清Windows、Client、服务器、HDFS集群的相关概念,此处做一个简单的说明以便同学们理解,后面还会遇到很多相关的概念,所以务必要理清思路。Windows:指的是你的个人电脑或者学校里的实训室的电脑,是提供给你学习的,此电脑上应该安装好了JDK,而且也应该先安装好代码编辑工具,本次实训使用的编辑工具是IDEA。如果是使用Eclipse或者其他编辑工具,也是可以的。服务器:服务器在工作上一般指的是物理服务器或者云服务器。因为在学习的时候,如果使用此类服务器,需要投入的资金成本会很高,所以学习的时候,可以选择其他服务器。比如说在个人电脑上安装多台虚拟机,通过VMWare等软件,安装好一台虚拟机,然后复制多两台或者更多台出来,那这些虚拟机就是所说的服务器,也可以称之为节点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025四季度重庆五一职业技术学院合同工招聘24人参考考试试题及答案解析
- 2026中国农业科学院第一批统一招聘14人(蔬菜花卉研究所)笔试重点试题及答案解析
- 2025年无人机空中交通管理报告
- 2025-2026 学年四年级 道德与法治 期末冲刺卷 试卷及答案
- 2025年齐齐哈尔市总工会工会社会工作者招聘39人考试核心题库及答案解析
- 2025年眉山市青神县人民法院公开招聘劳务派遣司法警察的备考题库及答案详解1套
- 2025四川自贡市第一人民医院招聘食堂工人8人备考核心试题附答案解析
- 2025年儿童安全教育游戏化五年开发报告
- 2026年长沙市中小学素质教育实践基地岳麓营地编外合同制教师、教官招聘备考题库及参考答案详解
- 2025广西南宁市武鸣区陆斡中心卫生院招聘编外工作人员1人考试核心题库及答案解析
- 2025年信用报告征信报告详版个人版模板样板(可编辑)
- 工业级无人机农业喷洒技术操作规程
- 雅马哈电子琴KB-200说明书
- 【2025年】天翼云解决方案架构师认证考试笔试卷库下(多选、判断题)含答案
- 临床预防呼吸机相关肺炎(VAP)的集束化管理策略
- 钻探安全培训
- 胸闷诊断与鉴别要点
- 数字化劳动教育:现状分析与优化策略研究
- 政协提案范文标准模板
- (2025年标准)酒水行业合伙协议书
- 2025教育考试院考务人员网上培训试题(附答案)
评论
0/150
提交评论