案例二:去重(shuffle/HashSet等方法)shuffle主要针对的是key去重HashSet主要针对values去重…
案例二:去重(shuffle/HashSet等方法)shuffle主要针对的是key去重HashSet主要针对values去重…
MapReduce算法形式一:WordCount 这种形式可以做一些网站登陆次数,或者某个电商网站的商品销量啊诸如此类的,主要就是求和,但是求和之前还是要好好清洗数据的,以免数据缺省值太多,影响真实性. 废话不多说,上代码吧,我把注释一行行的都写了~~可可可可~ 先封装了数据行的对象: public class Log { private String time; private String UID; private String keyWord; private int rank; priv…
案例六:Map独自直接输出 之前一直没有用过这个map独自输出的模式,就算是输出一些简单的我也会经过一次reduce输出,但是,发现这个map输出的结果跟我预想的有点不一样,我一直以为shuffle的过程会在map结尾,reduce开头进行,会有合并的,可是shuffle只做了分区,排序,然后就直接罗列出来了,这算是涨姿势了,之前理解的合并,归约还是有点问题的,果然毛爷爷说的实践才能出真理~~(向毛爷爷致敬,敬礼) 码就很简单,没什么可解释的,但是结果就得好好捉摸一下了,看看之后能用在哪里,回头…
案例五:TOP—N 这个问题比较常见,一般都用于求前几个或者后几个的问题,shuffle有一个默认的排序是正序的,但如果需要逆序的并且暂时还不知道如何重写shuffle的排序规则的时候就用以下方法就行,java中说到排序无非就是比较器,然后结合着集合,这样基本上就能解决我的需求了,但是有个问题需要注意,就是虽说集合是不定长的,但是呢,面对大数据而言,就可能会出现内存溢出的问题,所以最好不要讲所有数据都加入集合中在取出前N个,直接排序,加一个排一个,满足N个就把最后一个踢掉,这样会好点. 还有一个…
案例四:mapjoin(对个map共同输入,一个reduce) 这个方法主要解决的是,几个表之间的比较,类似于数据库的内外连接,还有一些左右连接之类的,简而言之就是,A表没有的B表有,B表有的A没有或者AB共有的,类似于这样的问题,话说呢,这就是一种思想,哒哒哒~不仅明白,因为用的也比较多.…
案例三:cleanup 其实这个案例可以不用写这么复杂,不用cleanup也能写,但是为了,突显,突显,突显(重要的事说四遍)cleanup的重要性,琢磨了半天,恩,这样写既可以突显cleanup又显示出我对大集合的各种热爱(哪天把集合的遍历方法搞一下,光Map就有四五种),总而言之呢,写得是复杂了点,但是灰常满意~~ 还是忘了说了,cleanup干嘛的,说白了就是吃reduce剩下的,reduce有些自己是处理不完的(可见团队合作重要性,kkk~),所以呢,cleanup就做了收尾吧的工作,官…
前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一年……我在博客园-_-#,希望用dt的代码燃烧脑细胞,温暖小心窝. 上篇<Hadoop阅读笔记(一)——强大的MapReduce>主要介绍了MapReduce的在大数据集上处理的优势以及运行机制,通过专利数据编写Demo加深了对于MapReduce中输入输出数据结构的细节理解.有了理论上的指导,仍…
算法(二)之遗传算法(SGA) 遗传算法(Genetic Algorithm)又叫基因进化算法或进化算法,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,属于启发式搜索算法一种. 下面通过下面例子的求解,来逐步认识遗传算法的操作过程.我参考了博客(http://blog.csdn.net/b2b160/article/details/4680853/),这个博客没提供代码,为了新手更好的学习,我用java实现了程序 例:求下述二元函数的最大值: (1) 个体编码           遗…
原文地址:如何简单解释 MapReduce 算法 在Hackbright做导师期间,我被要求向技术背景有限的学生解释MapReduce算法,于是我想出了一个有趣的例子,用以阐释它是如何工作的. 例子 你想数出一摞扑克牌中有多少黑桃.直观方式是一张一张检查并且数出有多少张是黑桃. MapReduce方法规则是: 给在座的所有玩家中分配这摞牌 让每个玩家数自己手中有几张是黑桃,然后把这个数目汇报给你 你把所有玩家告诉你的数字加起来,得到最后的结论. 背景 谷歌在2004年发表了可以分析大量数据的Ma…