找了这篇文章看了一下面试题<Spark 和hadoop的一些面试题(准备)> http://blog.csdn.net/qiezikuaichuan/article/details/51578743 其中有一道题目很不错,详见: http://www.aboutyun.com/thread-18826-1-1.html http://www.cnblogs.com/lucius/p/3483494.html 我觉得可以在Hadoop上面实际编程做一下. 我觉得第一篇文章里面下面这一段总结的很好…
大家好,关于“找出共同好友”的算法,网上有不少语言的实现,今天有空之余,自己研究了下Scala算法的写法 完整代码可以参考Git地址:https://github.com/benben7466/SparkDemo/blob/master/spark-test/src/main/scala/testCommendFriend.scala 录入的数据: A:B,C,D,F,E,O B:A,C,E,K C:F,A,D,I D:A,E,F,L E:B,C,D,M,L F:A,B,C,D,E,O,M G:…
这个前提需要注意:好友之间的关系是单向的,我的好友队列里有你,你的里面不一定有我.所以思考方式需要改变. 共同好友: 某两个人的好友队列里都有的人. 第一个mapper 和 reducer 简单说:找出 有谁把我当朋友呗. 他们的共同好友有我啦. 第二个 mapper 和 reducer 将他们的共同好友都统计在一起了.(他们共同好友不单只有你) .. 代码待完成.…
理论原理部分可以看这一篇:http://www.cnblogs.com/charlesblc/p/6109551.html 这里是实战部分.参考了 http://www.cnblogs.com/shishanyuan/p/4747778.html 采用了三个案例,分别对应聚类.回归和协同过滤的算法. 我觉得很好,需要每一个都在实际系统中试一下. 更多api介绍可以参考 http://spark.apache.org/docs/2.0.1/ml-guide.html 1.1 聚类实例 1.1.1 …
Facebook公司已经在其近线存储体系当中彻底弃用RAID与复制机制,转而采用分布式擦除编码以隔离其所谓的“暖性BLOB”. 暖性?BLOB?这都是些什么东西?大家别急,马上为您讲解: BLOB——也就是二进制大对象,包括Facebook用户的图片以及视频等等. 暖性——是指那些必须进行保存,访问频率低于热门数据但却又高于归档或者冷门数据的信息.通常情况下,这些数据已经产生了一周以上.当然,热门BLOB的访问频率仍然较高. 擦除编码——向一条字节串中添加经过计算的奇偶校验值(即里德所罗门码,简…
前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些. 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个.建堆时间复杂度是O(mlogm),算法的时间复杂度为O(nmlogm)(n为10亿,m为10000). 优化的方法:可以把…
我们面临的问题有以下两点:1)数据量太大,无法在短时间内解决:2)内存不够,没办法装下那么多的数据.而对应的办法其实也就是分成1)针对时间,合适的算法+合适的数据结构来提高处理效率:2)针对空间,就是分而治之,将大数据量拆分成多个比较小的数据片,然后对其各个数据片进行处理,最后再处理各个数据片的结果.原文中也给出一个问题,"从3亿个ip中访问次数最多的IP",就试着来解决一下吧.1)首先,生成3亿条数据,为了产生更多的重复ip,前面两节就不变了,只随机生成后面的2节. private…
一.运行程序TestGC 二.用jps找出当前应用的进程号PID 到jdk安装目录的bin目录下输入: jps -l PID为1264 三.启动Process Explorer(下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer)1.找到PID为1264的进程,右键properties2.看到该进程的所有线程的性能排序3.找到名字为javaw.exe(eclipse启动)的两个线程,线程TID…
第二课主要介绍第一课余下的BFPRT算法和第二课部分内容 1.BFPRT算法详解与应用 找到第K小或者第K大的数. 普通做法:先通过堆排序然后取,是n*logn的代价. // O(N*logK) public static int[] getMinKNumsByHeap(int[] arr, int k) { if (k < 1 || k > arr.length) { return arr; } int[] kHeap = new int[k];//存放第k小的数 for (int i =…
海量数据中找出前k大数(topk问题) 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些. 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个.建堆时间复杂度是O(mlogm),算法的时间复杂度为O(nmlogm)(n为10亿…