利用hadoop计算文件中的最大值
来源:互联网 发布:java设置编码方式 编辑:程序博客网 时间:2024/06/04 18:37
本文主要是找出文件中的最大值假设文件的类型为:
A 66
B 72
C 91
A 43
C 62
C 85
B 35
A 23
B 39
找出文件中的每个对象的最大值:
A 66
B 72
C 91
操作代码解析如下:
import java.io.IOException;import java.net.URI;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.conf.Configured;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.mapreduce.lib.output.MultipleOutputs;import org.apache.hadoop.util.Tool;import org.apache.hadoop.util.ToolRunner;public class MaxNumMR extends Configured implements Tool{ @Override public int run(String[] args) throws Exception { //获取文件系统的配置文件 Configuration conf = new Configuration() ; URI uri = new URI("hdfs://hadoop:9000") ; //声明文件系统的对象 FileSystem fs = FileSystem.get(uri, conf) ; //结果的输出目录,如果该目录存在则删除 Path path = new Path("hdfs://hadoop:9000/ming/out2") ; if(fs.isDirectory(path)){ fs.delete(path, true) ; } //声明作业对象 Job job = new Job(conf); job.setJarByClass(MaxNumMR.class); //配置Mapper的类和输出的格式 job.setMapperClass(MaxMapper.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(Text.class); //配置Reducer的类和输出的格式 job.setReducerClass(MaxReducer.class) ; job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); //配置文件的输入和输出文件 FileInputFormat.addInputPath(job, new Path("hdfs://hadoop:9000/ming/math.txt")); FileOutputFormat.setOutputPath(job, path); return job.waitForCompletion(true)?0:1; } public static void main(String[] args) throws Exception { //主方法,代码的入口点 int e = ToolRunner.run(new Configuration(), new MaxNumMR(), args); System.exit(e); } public static class MaxMapper extends Mapper<LongWritable,Text,Text,Text>{ @Override protected void map(LongWritable key,Text value,Context context) throws IOException, InterruptedException{ String line = value.toString() ; //对数据进行切分,然后存入输出的文件中 String[] param = line.split("\t") ; context.write(new Text(param[0]),new Text(param[1])) ; } } public static class MaxReducer extends Reducer<Text,Text,Text,Text>{ @Override protected void reduce(Text key,Iterable<Text> values,Context context) throws IOException, InterruptedException{ long max = 0L ; for(Text t:values){ //判断数据的大小 if(Long.parseLong(t.toString()) > max){ max = Long.parseLong(t.toString()) ; } } context.write(key, new Text(String.valueOf(max))); } }}
0 0
- 利用hadoop计算文件中的最大值
- 利用hadoop计算WordCount
- 计算整型数组中的最大值
- vector 计算数组中的最大值 最小值
- 用hadoop计算气象数据温度的最大值
- 利用位运算计算某种数据类型的最大值和最小值
- JAVA作业 多线程利用join方法计算随机数的最大值
- 【hadoop】 4003-Hadoop计算中的Shuffle过程
- hadoop中的pi值计算
- Hadoop计算中的Shuffle过程
- Hadoop计算中的Shuffle过程
- Hadoop计算中的Shuffle过程
- Hadoop计算中的Shuffle过程
- Hadoop计算中的Shuffle过程
- hadoop计算中的Shuffle过程
- Hadoop计算中的Shuffle过程
- Hadoop计算中的Shuffle过程
- Hadoop计算中的Shuffle过程
- beamer使用之ppt中插入四张图像,及中文
- 圆角Tablayout以及仿微信QQ小红点,数字通知
- c++实验4-项目6-输出星号图
- 行间距设置 类选择器设置
- Android数据传输格式(基于JSON格式)
- 利用hadoop计算文件中的最大值
- easyui datagrid 不显示分页栏,可以自定义显示分页按钮
- Django项目部署 - 主流部署方式 Django+mod_wsgi + Apache
- pythonchallenge初试
- 三种颜色铺满十个li
- HDU 2476String painter 区间dp
- 第5周 经典小程序1 题 动态数组的实现
- 数字方阵
- Jenkins插件开发笔记(1):导入Jenkins源码