hadoop 寫入文件工具類

gww3 9年前發布 | 787 次閱讀 Java Hadoop

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); } } }</pre>

 本文由用戶 gww3 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!