• Belive   2014/7/9 13:32:00
  • Haddop学习-如何在HDFS中实现文件上传,下载,删除等操作
  • 关键字: Haddop HDFS 文件系统

  • hdfs文件操作操作示例,包括上传文件到HDFS上、从HDFS上下载文件和删除HDFS上的文件,大家参考使用吧

     
    代码如下:
    i
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    mport org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.*;
     
    import java.io.File;
    import java.io.IOException;
    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;
    }
    }
  • 相关话题
  • 暂无相关话题哦