欢迎来到天天文库
浏览记录
ID:57321561
大小:105.50 KB
页数:15页
时间:2020-08-11
《实验3-熟悉常用的HDFS操作-答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验2熟悉常用的HDFS操作1实验目的1.理解HDFS在Hadoop体系结构中的角色;2.熟练使用HDFS操作常用的Shell命令;3.熟悉HDFS操作常用的JavaAPI。2实验平台操作系统:LinuxHadoop版本:或以上版本JDK版本:或以上版本JavaIDE:Eclipse3实验内容和要求1.编程实现以下指定功能,并利用Hadoop提供的Shell命令完成相同任务:提示:1)部分Shell命令的参数路径只能是本地路径或者HDFS路径。2)若Shell命令的参数既可以是本地路径,也可以是HDFS路径时,务必注意区分。为
2、保证操作正确,可指定路径前缀或者注意区分相对路径与绝对路径3)具体命令的说明可参考教材或(1)向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件;Shell命令:检查文件是否存在:./hdfsdfs-test-e(执行完这一句不会输出结果,需要继续输入命令"echo$")追加命令:./hdfsdfs-appendToFile覆盖命令1:./hdfsdfs-copyFromLocal-f覆盖命令2:./hdfsdfs-cp-f也可以使用如下命令实现:(如下代码可视为
3、一行代码,在终端中输入第一行代码后,直到输入fi才会真正执行):if$(./hdfsdfs-test-e;then$(./hdfsdfs-appendToFile;else$(./hdfsdfs-copyFromLocal-f;fiJava代码:import.*;publicclassHDFSApi{/***判断路径是否存在*/publicstaticbooleantest(Configurationconf,Stringpath)throwsIOException{FileSystemfs=(conf);return(new
4、Path(path));}/***复制文件到指定路径*若路径已存在,则进行覆盖*/publicstaticvoidcopyFromLocalFile(Configurationconf,StringlocalFilePath,StringremoteFilePath)throwsIOException{FileSystemfs=(conf);PathlocalPath=newPath(localFilePath);PathremotePath=newPath(remoteFilePath);/*第一个参数表示是否删除源文件,第
5、二个参数表示是否覆盖*/(false,true,localPath,remotePath);();}/***追加文件内容*/publicstaticvoidappendToFile(Configurationconf,StringlocalFilePath,StringremoteFilePath)throwsIOException{FileSystemfs=(conf);PathremotePath=newPath(remoteFilePath);/*创建一个文件读入流*/FileInputStreamin=newFileI
6、nputStream(localFilePath);/*创建一个文件输出流,输出的内容将追加到文件末尾*/FSDataOutputStreamout=(remotePath);/*读写文件内容*/byte[]data=newbyte[1024];intread=-1;while((read=(data))>0){(data,0,read);}();();();}/***主函数*/publicstaticvoidmain(String[]args){Configurationconf=newConfiguration();(""
7、,"");StringlocalFilePath="/home/hadoop/";;}else{+"不存在.");}/*进行处理*/if(!fileExists){(1)hdfsdfs-test-e;then$(./hdfsdfs-copyToLocal./;else$(./hdfsdfs-copyToLocal./;fiJava代码:import.*;publicclassHDFSApi{/***下载文件到本地*判断本地路径是否已存在,若已存在,则自动进行重命名*/publicstaticvoidcopyToLocal(Co
8、nfigurationconf,StringremoteFilePath,StringlocalFilePath)throwsIOException{FileSystemfs=(conf);PathremotePath=newPath(remoteFilePath);File
此文档下载收益归作者所有