使用Java Api操作HDFS过程详解
如题我就是一个标题党就是使用JavaApi操作HDFS,使用的是MAVEN,操作的环境是Linux
首先要配置好Maven环境,我使用的是已经有的仓库,如果你下载的jar包速度慢,可以改变Maven下载jar包的镜像站改为阿里云。
贴一下pom.xml
使用到的jar包
junit junit 4.10 org.apache.hadoop hadoop-client ${hadoop.version}
然后就是操作HDFS的代码
packagecom.zuoyan.hadoop.hdfs; importjava.io.File; importjava.io.FileInputStream; importorg.apache.hadoop.conf.Configuration; importorg.apache.hadoop.fs.FSDataInputStream; importorg.apache.hadoop.fs.FSDataOutputStream; importorg.apache.hadoop.fs.FileSystem; importorg.apache.hadoop.fs.Path; importorg.apache.hadoop.io.IOUtils; /** *usejavaapioperatehdfs * *@authorbeifeng * */ publicclassHdfsApp{ //getFileSystem publicstaticFileSystemgetFileSystem()throwsException{ Configurationconf=newConfiguration(); FileSystemfileSystem=FileSystem.get(conf); returnfileSystem; } publicstaticvoidread(StringfileName)throwsException{ FileSystemfileSystem=getFileSystem(); //readPath PathreadPath=newPath(fileName); FSDataInputStreaminStream=fileSystem.open(readPath); try{ IOUtils.copyBytes(inStream,System.out,4096,false); }catch(Exceptione){ //TODO:handleexception e.printStackTrace(); }finally{ //ifExceptioncloseStream IOUtils.closeStream(inStream); } } publicstaticvoidmain(String[]args)throwsException{ //StringfileName="/user/beifeng/mapreduce/wordcount/input/wc.input"; //read(fileName); FileSystemfileSystem=getFileSystem(); //writepath StringputFileName="/user/beifeng/put-wc.input"; PathwritePath=newPath(putFileName); FSDataOutputStreamoutputStream=fileSystem.create(writePath); FileInputStreaminputStream=newFileInputStream( newFile("/opt/modules/hadoop-2.5.0/wc.input")); try{ IOUtils.copyBytes(inputStream,outputStream,4096,false); }catch(Exceptione){ //TODO:handleexception inputStream.close(); outputStream.close(); } } }
思路
可以使用Java操作hdfs的api制作一个基于HDFS的云盘,可以对文件进行上传、删除、移动目录、查看目录,但是不可以对文件的内容进行修改!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。