一.二次排序问题. MR/hadoop两种方案: 1.让reducer读取和缓存给个定键的所有值(例如,缓存到一个数组数据结构中,)然后对这些值完成一个reducer中排序.这种方法不具有可伸缩性,因为reducer要接受一个给定键的所有值,这种方法可能导致reducer的内存耗尽(OOM).另一方面,如果值数量很少,就不会导致内存溢出,那么这种方法可行. 2.使用MR框架对reducer的值排序(这样一来,就不再需要对传入reducer的值完成排序.)这种方法“会为自然键增加部分或整个值来创建…
五.移动平均 多个连续周期的时间序列数据平均值(按相同时间间隔得到的观察值,如每小时一次或每天一次)称为移动平均.之所以称之为移动,是因为随着新的时间序列数据的到来,要不断重新计算这个平均值,由于会删除最早的值同时增加最新的值,这个平均值会相应地“移动”. 例子: java代码: MR方案: 方案1:对于各个规约器键,在RAM种对时间序列数据排序,这个方法存在一个问题:如果没有足够的RAm来完成规约器的排序操作,这种方法就不可行. 方案2:让MRF完成时间序列数据的排序(MR框架的主要特性之一就…
九.基于内容的电影推荐 在基于内容的推荐系统中,我们得到的关于内容的信息越多,算法就会越复杂(设计的变量更多),不过推荐也会更准确,更合理. 本次基于评分,提供一个3阶段的MR解决方案来实现电影推荐. 1.找出各个电影的评分人总数 2.对于每个电影对A和B,找出所有同时对A和B评分的人. 3.找出每两个相关电影之间的关联.在这个阶段,我使用3个不同的关联度算法(pearson,cosine,jaccard)一般要根据具体的数据需求来选择关联度算法. 数据的输入格式: 第一阶段转化完之后: 经过M…
十一.k-均值聚类 这个需要MR迭代多次. 开始时,会选择K个点作为簇中心,这些点成为簇质心.可以选择很多方法啦初始化质心,其中一种方法是从n个点的样本中随机选择K个点.一旦选择了K个初始的簇质心,下面可以计算输入集合中各个点到这个k个中心点的距离,然后将各个点分配到与他距离最近的簇中心.所有对象都分配之后,在重新计算k个质心的位置.反复迭代,知道簇质心不变(或者变化非常小.) 算法代码: MR的实现步骤: Spark由ML库,可以直接调用方法: 十二. KNN spark的大致步骤: 1.导入…
三. 左外连接 考虑一家公司,比如亚马逊,它拥有超过2亿的用户,每天要完成数亿次交易.假设我们有两类数据,用户和交易: users(user_id,location_id) transactions(transction_id,product_id,user_id,quantity,amout) 所谓左外连接:令T1(左表)和T2(右表)是以下两个关系(其中t1是T1的属性,t2是T2的属性): T1=(K,t1) T2=(K,t2) 关系T1,T2在连接键K上左外连接的结果将包含左表(T1)的…
十七.小文件问题 十八.MR的大容量缓存 在MR中使用和读取大容量缓存,(也就是说,可能包括数十亿键值对,而无法放在一个商用服务器的内存中).本次提出的算法通用,可以在任何MR范式中使用.(eg:MR,Spark)…
十三.朴素贝叶斯 朴素贝叶斯是一个线性分类器.处理数值数据时,最好使用聚类技术(eg:K均值)和k-近邻方法,不过对于名字.符号.电子邮件和文本的分类,则最好使用概率方法,朴素贝叶斯就可以.在某些情况下,NBC也可以用来对数值数据分类. 对于数值数据的分类,比如(连续属性,身高,体重,脚长),建议采用采用高斯分布,令x是一个连续属性.首先,按类对数据分段,然后计算各个类中的x的均值(u)和方差(). 本次主要以文本数据进行. 首先先进行Map函数,将数据进行处理. 得到的数据如下: 之后再进行r…
十五.查找.统计和列出大图中的所有三角形 第一步骤的mr: 第二部mr: 找出三角形 第三部:去重 spark: 十六: k-mer计数 spark:…
七,共同好友. 在所有用户对中找出“共同好友”. eg: a    b,c,d,g b    a,c,d,e map()->  <a,b>,<b,c,d,g> ;<a,c>,<b,c,d,g>;..... <a,b>,<a,c,d,e> reduce()->    <a,b>,<c,d>   也就是a,b的共同好友是c,d. 上述就是思想. 八,使用MR实现推荐引擎 1.购买过该商品的顾客还购买了哪…
花了一些时间, 但感觉很值得. Big Data, MapReduce, Hadoop, and Spark with Python Master Big Data Analytics and Data Wrangling with MapReduce Fundamentals using Hadoop, Spark, and Python 作者: The LazyProgrammer (https://lazyprogrammer.me)…