package com.tdxx.hadoop.sequencefile;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.SequenceFile.Writer;
public class SequenceFileStudy{
/**
* 写入到sequence file
*
* @param filePath
* @param conf
* @param datas
*/
public static void write2SequenceFile(String filePath, Configuration conf,
LongWritable key,LongWritable val) {
FileSystem fs = null;
Writer writer = null;
Path path = null;
//LongWritable idKey = new LongWritable(0);
try {
fs = FileSystem.get(conf);
path = new Path(filePath);
writer = SequenceFile.createWriter(fs, conf, path,
LongWritable.class, LongWritable.class);
writer.append(key, val);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
IOUtils.closeStream(writer);
}
}
private static Configuration getDefaultConf() {
Configuration conf = new Configuration();
conf.set("mapred.job.tracker", "local");
conf.set("fs.default.name", "file:///");
return conf;
}
/**
* @param args
*/
public static void main(String[] args) {
String filePath = "data/longValue.sequence"; // 文件路径
// 生成数据
for (int i = 1; i <= 20; i++) {
// 写入到sequence file
LongWritable key = new LongWritable(i);
LongWritable value = new LongWritable(i+1);
write2SequenceFile(filePath, getDefaultConf(), key,value);
}
}
}
Hadoop 写SequenceFile文件 源代码
最新推荐文章于 2024-11-14 09:21:17 发布