hadoop 写入文件工具类

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
import java.io.File;
import java.io.FileOutputStream;
import java.net.URI;
import java.util.List;
 
import org.apache.commons.io.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
 
public class HdfsUtils {
  public static  Configuration conf = new Configuration();
  static{
    conf.addResource(new Path(Config.instace().getProperty("hadoop")
        + "core-site.xml"));
    conf.addResource(new Path(Config.instace().getProperty("hadoop")
        + "hdfs-site.xml"));
    conf.reloadConfiguration();
  }
  public static void write(List data, String path) {
    Configuration conf = new Configuration();
    conf.addResource(new Path(Config.instace().getProperty("hadoop")
        + "core-site.xml"));
    conf.addResource(new Path(Config.instace().getProperty("hadoop")
        + "hdfs-site.xml"));
    conf.reloadConfiguration();
    FileSystem fs = null;
    FSDataOutputStream f = null;
    try {
      fs = FileSystem.get(conf);
      if (fs.exists(new Path(path))) {
        f = fs.append(new Path(new URI(path)));
      } else {
        f = fs.create(new Path(new URI(path)), false);
      }
      for (Object object : data) {
        f.write(object.toString().getBytes());
      }
      f.close();
      fs.close();
    } catch (Exception e) {
      throw new RuntimeException(e);
    } finally {
      IOUtils.closeQuietly(f);
      IOUtils.closeQuietly(fs);
    }
  }
  public static void write(String data, String path) {
    FileSystem fs = null;
    FSDataOutputStream f = null;
    try {
      fs = FileSystem.get(conf);
      if (fs.exists(new Path(path))) {
        f = fs.append(new Path(new URI(path)));
      } else {
        f = fs.create(new Path(new URI(path)), false);
 
      }
      f.write(data.getBytes());
      f.hsync();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      IOUtils.closeQuietly(f);
      IOUtils.closeQuietly(fs);
    }
  }
 
  public static void writeLocal(String data, String path) {
    FileOutputStream fo = null;
    try {
      fo = new FileOutputStream(new File(path),true);
      fo.write(data.getBytes());
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      IOUtils.closeQuietly(fo);
    }
  }
}

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:php 简单ftp文件上传范例

下一篇:操作Session的PHP类