hdfs文件操做操做示例,包括上傳文件到HDFS上、從HDFS上下載文件和刪除HDFS上的文件

import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import java.io.File; import java.io.IOException; /**hdfs文件操做操做示例,包括上傳文件到HDFS上、從HDFS上下載文件和刪除HDFS上的文件*/ public class HadoopFile {     private Configuration conf =null;     public HadoopFile(){         conf =new Configuration();         conf.addResource(new Path("/hadoop/etc/hadoop/core-site.xml"));     }     public HadoopFile(Configuration conf){         this.conf =conf;     }     public boolean sendFile(String path,String localfile){         File file=new File(localfile);         if (!file.isFile()) {             System.out.println(file.getName());             return false;         }         try {             FileSystem localFS =FileSystem.getLocal(conf);             FileSystem hadoopFS =FileSystem.get(conf);             Path hadPath=new Path(path);             FSDataOutputStream fsOut=hadoopFS.create(new Path(path+"/"+file.getName()));             FSDataInputStream fsIn=localFS.open(new Path(localfile));             byte[] buf =new byte[1024];             int readbytes=0;             while ((readbytes=fsIn.read(buf))>0){                 fsOut.write(buf,0,readbytes);             }             fsIn.close();             fsOut.close();             FileStatus[] hadfiles= hadoopFS.listStatus(hadPath);             for(FileStatus fs :hadfiles){                 System.out.println(fs.toString());             }             return true;         } catch (IOException e) {             e.printStackTrace();         }         return false;     }     public boolean delFile(String hadfile){         try {             FileSystem hadoopFS =FileSystem.get(conf);             Path hadPath=new Path(hadfile);             Path p=hadPath.getParent();             boolean rtnval= hadoopFS.delete(hadPath, true);             FileStatus[] hadfiles= hadoopFS.listStatus(p);             for(FileStatus fs :hadfiles){                 System.out.println(fs.toString());             }             return rtnval;         } catch (IOException e) {             e.printStackTrace();         }         return false;     }     public boolean downloadFile(String hadfile,String localPath){         try {             FileSystem localFS =FileSystem.getLocal(conf);             FileSystem hadoopFS =FileSystem.get(conf);             Path hadPath=new Path(hadfile);             FSDataOutputStream fsOut=localFS.create(new Path(localPath+"/"+hadPath.getName()));             FSDataInputStream fsIn=hadoopFS.open(hadPath);             byte[] buf =new byte[1024];             int readbytes=0;             while ((readbytes=fsIn.read(buf))>0){                 fsOut.write(buf,0,readbytes);             }             fsIn.close();             fsOut.close();             return true;         } catch (IOException e) {             e.printStackTrace();         }         return false;     } }
相關文章
相關標籤/搜索