Mapreduce TopK】的更多相关文章

Hadoop技术内幕中指出Top K算法有两步,一是统计词频,二是找出词频最高的前K个词.在网上找了很多MapReduce的Top K案例,这些案例都只有排序功能,所以自己写了个案例. 这个案例分两个步骤,第一个是就是wordCount案例,二就是排序功能. 一,统计词频 package TopK; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configu…
  思想比较简单,就是每个通过map来获取当前的数据块中的的topk个数据,然后将他们以相同的key值放到reduce中,最后通过reduce来对这n*k个数据排序并获得topk个数据.具体的就是建立一个k个大小的数组,一开始初始化为都是100(假定这里的100是最大的数),然后往里面插数据小的数据即可.   PS:有几个小细节以及当时写代码的时候出错的地方. 1 map和reduce都是在每个键值对来的时候会被调用.当时觉得应该把这k的数组放在哪,以及怎么初始化.如果放在map方法里面,那每次…
在工作中,很多时候都是用hive或pig来自动化执行mr统计,但是我们不能忘记原始的mr.本文记录了一些通过mr来完成的经典的案例,有倒排索引.数据去重等,需要掌握. 一.使用mapreduce实现倒排索引  倒排索引(Inverted index),也常被称为反向索引.置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射.它是文档检索系统中最常用的数据结构.通过倒排索引,可以根据单词快速获取包含这个单词的文档列表.  之所以称之为倒排索引,…
版权声明: https://blog.csdn.net/zhangxiango/article/details/33319281 MapReduce TopK统计加排序中介绍的TopK在mapreduce的实现. 本案例省略的上面案例中的Sort步骤,改用TreeMap来实现获取前K个词 package TopK1; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.con…
由于开始学习MapReduce编程已经有一段时间了,作为一个从编程中寻找自信和乐趣以及热爱编程的孩子来讲,手开始变得很“痒”了,很想小试一下身手.于是自己编写了TopK的代码.TopK的意思就是从原文件中找出词频排名前K的所有单词.首先分析该问题,从中我们可以得到启发:要想知道词频排名前K的所有单词,那么是不是要对所有的单词进行词频的统计啊?于是我们就联想到了一个比较经典的例子:WordCount的例子.是的,没错.就是它,统计原文件中每个单词的个数就靠它. 但是,我们词频统计出来了,接下来需要…
一.MapReduce中有哪些常见算法 (1)经典之王:单词计数 这个是MapReduce的经典案例,经典的不能再经典了! (2)数据去重 "数据去重"主要是为了掌握和利用并行化思想来对数据进行有意义的筛选.统计大数据集上的数据种类个数.从网站日志中计算访问地等这些看似庞杂的任务都会涉及数据去重. (3)排序:按某个Key进行升序或降序排列 (4)TopK:对源数据中所有数据进行排序,取出前K个数据,就是TopK. 通常可以借助堆(Heap)来实现TopK问题. (5)选择:关系代数基…
1 n-gram模型与auto complete n-gram模型是假设文本中一个词出现的概率只与它前面的N-1个词相关.auto complete的原理就是,根据用户输入的词,将后续出现概率较大的词组显示出来.因此我们可以基于n-gram模型来对用户的输入作预测. 我们的实现方法是:首先用mapreduce在offline对语料库中的数据进行n-gram建模,存到数据库中.然后用户在输入的时候向数据库中查询,获取之后出现的概率较大的词,通过前端php脚本刷新实时显示在界面上.如下所示: 2 m…
1 协同过滤算法 协同过滤算法是现在推荐系统的一种常用算法.分为user-CF和item-CF. 本文的电影推荐系统使用的是item-CF,主要是由于用户数远远大于电影数,构建矩阵的代价更小:另外,电影推荐系统中使用基于物品的推荐对用户来说更有说服力.因此本文对user-CF只做简单介绍,主要介绍item-CF. 1.1 基于用户的协同过滤算法  a 计算出用户两两之间的相似度,得到用户相似度矩阵:  b 预测用户的喜好,使用公式: 其中,p(u,i)表示用户u对物品i的感兴趣程度,S(u,k)…
本来只是想拿搜狗的数据练练手的,却无意踏足MR的topK问题.经过几番波折,虽然现在看起来很简单,但是摸爬滚打中也学到了不少 数据是搜狗实验室下的搜索日志,格式大概为: 00:00:00 2982199073774412 [360安全卫士] 8 3 download.it.com.cn/softweb/software/firewall/antivirus/20067/17938.html 00:00:00 07594220010824798 [哄抢救灾物资] 1 1 news.21cn.com…
MapReduce 支持的部分数据挖掘算法 MapReduce 能够解决的问题有一个共同特点:任务可以被分解为多个子问题,且这些子问题相对独立,彼此之间不会有牵制,待并行处理完这些子问题后,任务便被解决.在实际应用中,这类问题非常庞大,谷歌在论文中提到了MapReduce 的一些典型应用,包括分布式grep.URL 访问频率统计.Web 连接图反转.倒排索引构建.分布式排序等,这些均是比较简单的应用.下面介绍一些比较复杂的应用. (1)TopK 问题 我们要选择一个酒店入住,有a-g个备选,每个…