使用MapReduse 处理 SequenceFile
来源:互联网 发布:天下3 知乎 编辑:程序博客网 时间:2024/06/06 04:12
为了解决大量小图片在HDFS存储是存储在的问题,将小图片存储到SequenceFile中,然后通过MapReduce函数对SequenceFile文件进行操作。
用过设置,job的输入文件格式得到SequenceFile中的数据,代码如下:
package com.wang;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.SequenceFile;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapred.SequenceFileOutputFormat;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.Mapper.Context;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.util.ReflectionUtils;public class Parral_Pyramid {static int i=0;public static void main(String[] args) throws Exception {// TODO Auto-generated method stubConfiguration conf=new Configuration();Job job = Job.getInstance(conf);//ע设置main的主类job.setJarByClass(Parral_Pyramid.class);job.setInputFormatClass(SequenceFileInputFormat.class);//设置Mapper参数job.setMapperClass(Image_Mapper.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(Text.class);job.setOutputFormatClass(org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat.class);job.setNumReduceTasks(0);FileInputFormat.setInputPaths(job, new Path("hdfs://master:9000/wang/result1.seq/part-r-00000"));FileOutputFormat.setOutputPath(job, new Path("hdfs://master:9000/wang/result2.seq"));job.waitForCompletion(true);}static class Image_Mapper extends Mapper<Text, Text, Text, Text>{//private SequenceFile.Reader reader = null;@Overrideprotected void map(Text key, Text value, Context context)throws IOException, InterruptedException {//得到文件内容i++;System.out.println("now_key:"+key.toString()+"value="+value); //这里map读进来的数据即SequenceFile中的key和value//context.write(new Text(next_key),value);}}}
阅读全文
0 0
- 使用MapReduse 处理 SequenceFile
- hadoop处理sequenceFile文件
- SequenceFile使用随笔
- sequencefile处理小文件实例
- sequencefile处理小文件实例
- SequenceFile
- SequenceFile
- sequencefile
- SequenceFile在Hadoop中使用
- Hadoop中SequenceFile的使用
- SequenceFile在Hadoop中使用
- SequenceFile在hadoop中使用
- hive使用orcfile parquet sequencefile
- mapreduce 编程SequenceFile类的使用
- impala表使用rcfile,sequencefile和parquet
- 使用MapReduce读取SequenceFile文件,批量导入HBase
- SequenceFile文件
- SequenceFile文件
- StringUtils--字符串工具类
- Android项目eclipse导入发生的问题
- 第一份博客
- GKVoronoiNoiseSource
- 15. 3Sum
- 使用MapReduse 处理 SequenceFile
- mybatis实战教程(mybatis in action),mybatis入门到精通
- LwIP裸机ping问题
- Maven下载、安装和配置(一)
- 以Point类为基础,定义一个平面中的Circle类: 1、编写一个无参的构造函数; 2、编写一个有参的构造函数; 3、在主函数中调用无参的构造函数生成圆的实例c1,调用有参的构造函数生成圆的实例c2
- qnx的ssh功能配置,nfs配置,scp配置,telnet配置
- c++ 左值、右值、左值引用和右值引用
- poj 3415 后缀数组+单调栈||后缀自动机
- HID Firmware修改 (HIDtoUARTExample)之二