使用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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。