`
elan1986
  • 浏览: 168231 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop 查找最大数

阅读更多
package com.lch.find;

import java.io.IOException;
import java.util.Iterator;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.FloatWritable;
import org.apache.hadoop.io.IntWritable;
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.util.GenericOptionsParser;

public class SearchMaxValue {

	public static class SearchMaxValueMapper extends Mapper<LongWritable, Text, IntWritable, FloatWritable>{
		private final static IntWritable one = new IntWritable(1);

		@Override
		protected void map(LongWritable key, Text value, Context context)
				throws IOException, InterruptedException {
			String str = value.toString().trim();
			float flo = Float.parseFloat(str);
			context.write(one, new FloatWritable(flo));
		}
	}
	
	public static class SearchMaxValueReducer extends Reducer<IntWritable, FloatWritable, Text, FloatWritable>{
		@SuppressWarnings("rawtypes")
		public void reduce(IntWritable key, Iterable<FloatWritable> values, Context context) throws IOException, InterruptedException{
			Iterator it = values.iterator();
			float maxFloat = 0, tmp;
			if(it.hasNext()){
				maxFloat = ((FloatWritable) it.next()).get();
			}else{
				context.write(new Text("Max Value : "), null);
				return;
			}
			while(it.hasNext()){
				tmp = ((FloatWritable) it.next()).get();
				if(tmp > maxFloat){
					maxFloat = tmp;
				}
			}
			context.write(new Text("Max value is :"), new FloatWritable(maxFloat));
		}
	}
	
	public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {
		Configuration conf = new Configuration();
		String[] paths = { "hdfs://192.168.1.136:9000/tmp/test.txt", "hdfs://192.168.1.136:9000/tmp/outputs" };
		String[] otherArgs = new GenericOptionsParser(conf, paths).getRemainingArgs();
		
		Job job = new Job(conf, "SearchValue");
		job.setJarByClass(SearchMaxValue.class);
		job.setMapperClass(SearchMaxValueMapper.class);
		job.setReducerClass(SearchMaxValueReducer.class);
		
		job.setMapOutputKeyClass(IntWritable.class);
		job.setMapOutputValueClass(FloatWritable.class);
		
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(FloatWritable.class);
		
		FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
		FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
		
		System.exit(job.waitForCompletion(true) ? 0 : 1);
	}
}

代码比较简单 不多解释
附上数据信息
12.5
85.0
236
239
23
2
0
1
9
236
232.0
分享到:
评论

相关推荐

    java操作hadoop之mapreduce计算整数的最大值和最小值实战源码

    本教程将详细讲解如何使用Java编程语言操作Hadoop的MapReduce来计算整数序列中的最大值和最小值,这对于数据分析和处理任务来说是非常基础且实用的技能。 首先,我们需要理解MapReduce的工作原理。MapReduce是一种...

    hadoop简单示例源码

    这一步骤通常包括最大值查找,因为我们要找的是每年的最高气温。 5. **结果输出**:最后,reduce阶段的结果将写回到HDFS,形成一个新的文件,包含每年的最高气温记录。 【标签】"hadoop"表明这个示例代码完全基于...

    Hadoop配置文档

    通过阅读提供的“Hadoop配置文档.docx”,你可以深入了解这些概念,并根据实际需求定制和优化你的Hadoop集群配置,从而最大化利用大数据处理的能力。同时,博文链接中的内容也可能是对这些知识点的补充和实践案例,...

    Hadoop与Spark技术应用

    在实际应用中,"Path Finder.app"可能是一个用于在Hadoop或Spark集群中查找文件路径的工具,而"Assets"可能包含了项目相关的配置文件、库或数据集。这些资产可能是运行Hadoop或Spark作业所必需的,例如,配置文件...

    Hadoop配置文件表(如需要请下载附件)

    5. **yarn.scheduler.minimum-allocation-mb**和`yarn.scheduler.maximum-allocation-mb`:YARN(Yet Another Resource Negotiator)调度器分配给每个容器的最小和最大内存,决定任务的并行度。 博客中可能提供的...

    hadoop01Demo

    通过运行这个示例,我们可以直观地看到如何利用Hadoop处理温度数据,实现排序、分组、分区和查找最高温度的全过程。这个例子对于理解和掌握Hadoop在大数据处理中的应用具有很好的教学价值。 总的来说,Hadoop01Demo...

    hadoop2面试题 -用分数形式精确表达有理数和循环无理数.pdf

    例如,在大规模数据集中查找并转换循环无理数的过程可以借助Hadoop 2的分布式计算能力高效完成。具体来说,可以设计MapReduce程序来处理大量的数字数据,将每个数字转换为其对应的分数形式。 ### 四、代码实现 代码...

    大数据hadoop参考资料-案例分析.doc

    + 本案例使用Hadoop来解决TOPN问题,查找_topN_个最大或最小的数据记录。 + 涉及到数据处理、数据分析等相关技术。 编写MAP代码 本单元还涵盖了编写MAP代码的相关知识,旨在帮助读者学习Hadoop的编程技术。 第...

    Hadoop开发第四期

    - **线程数**:调整Map和Reduce任务的最大线程数。 - **网络带宽**:优化网络带宽以减少数据传输时间。 #### 十、Hadoop平台的Java规范及经验 - **编码规范**: - **命名规则**:遵循Java标准命名规则,提高代码...

    在Eclipse下的Hadoop0.17.0(MapReduce)的统计作业指导书

    它允许使用简单的编程模型来扩展从单一服务器到数千台机器的计算任务,每台机器都提供本地计算存储。对于不熟悉底层分布式系统原理的程序员来说,Hadoop提供了一个友好的平台,让他们能够轻松地编写并行处理程序。 ...

    Big-Data-Experiments:Hadoop和Map Reduce中的大数据分配和项目

    Mapreduce程序可查找前10个好友对,其中最大的共同好友数。 使用与第一个程序相同的数据。 程序使用作业链接方法。 3.查找大量数字的均值和方差 使用组合器以减少减速器的负载。 4.查找大量数字的最小值,最大值和...

    Hadoop各组件详解(Hbase篇 持续更新版)

    同时,它利用Zookeeper进行快速的数据查找,提升了访问速度。 【HBase集群中的角色】 HBase集群包含三个主要角色: 1. HMaster:负责监控RegionServer,处理Region的分配和迁移,以及故障恢复。 2. HRegionServer...

    word源码java-hadoop-test:hadoop、mapreduce的一些练习

    word源码java hadoop-test hadoop、mapreduce的一些练习 包org.dan.service Hadoop ...包org.dan.mr.max_order_price MapReduce编写自定义的Partitioner和GroupingComparator实现高效求最大值 包org.dan.mr.smallfile M

    map_all_reduce:Hadoop 的 All-Reduce 操作

    总之,Hadoop的MapAll-Reduce操作为大数据处理提供了一种强大的工具,它允许在分布式系统中进行更复杂的计算任务,如全局平均、最大值或最小值的查找等。而Java作为Hadoop的主要编程语言,提供了丰富的API和工具来...

    大数据技术2015最新面试题

    2. 二分查找实现:二分查找是一种在有序数组中查找特定元素的算法。其基本思想是每次比较中间元素,根据比较结果缩小搜索范围。以下是C语言实现: ```c int binary_search(int array[], int key, int low, int high)...

    百度大数据云计算研发岗笔试题

    题目要求从给定数组中选取若干整数,使得它们的和最大,且相邻的数不能同时被选。要求空间复杂度为O(1)。 - **解题思路**:使用动态规划的思想,定义`max1`表示前n-2个元素的最大值,`max2`表示前n-1个元素的最大值...

    MySQL命令大全

    * 查找:SELECT * FROM table1 WHERE field1 LIKE '%value1%' * 排序:SELECT * FROM table1 ORDER BY field1, field2 [DESC] * 总数:SELECT COUNT(*) AS totalcount FROM table1 * 求和:SELECT SUM(field1) AS ...

    99%的海量数据处理面试题

    例如,Hadoop和MapReduce是常见的分布式处理框架。 在处理海量数据时,常见的策略有: 1. **分而治之/hash映射 + hash统计 + 堆/快速/归并排序**:将数据划分为多个部分,对每个部分独立处理,然后合并结果。 2. **...

    春招资料,包括大数据开发和力扣

    8. **哈希表**:哈希表在查找和插入操作上具有高效性能,常见题目有两数之和、无重复字符的最长子串等。 9. **堆与队列**:优先队列(堆)在解决最大/最小元素问题时很有用,如Top K问题。 10. **位运算**:位运算...

Global site tag (gtag.js) - Google Analytics