Hadoop 写SequenceFile文件 源代码

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);

		}

	}



}


你可能感兴趣的:(sequence)