Apriori on MapReduce】的更多相关文章

Apiroi算法在Hadoop MapReduce上的实现 输入格式: 一行为一个Bucket 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 1 3 5 7 9 12 13 15 17 19 21 23 25 27 29 31 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68…
·背景 前一阵,一直在研究一些ML的东东,后来工作关系暂停了一阵.现在继续把剩下一些热门的算法再吃吃透,"无聊+逗比"地把他们搞到MapReduce上.这次选择的入手对象为Apriori,也就是大家俗称的"关联规则挖掘",有别于CF(协同过滤)的正交输出.再俗一点,就是常被人提及的"啤酒+面包"的故事. ·Apriori算法简介 在关联规则挖掘方面,有两项著名的算法:Apriori和FPgrowth.两者各有特点,由于计算量级别的差异,越来越多的…
       接着上一篇文章常见算法的mapreduce案例(1)继续挖坑,本文涉及到算法的基本原理,文中会大概讲讲,但具体有关公式的推导还请大家去查阅相关的文献文章.下面涉及到的数据挖掘算法会有:Logistict 回归,SVM算法,关联规则apriori算法,SlopeOne推荐算法,二度人脉社交推荐算法   logistict regression的map-reduce        逻辑回归作为经典的分类算法,工业界也是应用的非常广泛(点击率预估,广告投放等),貌似大部分互联网公司都会用…
Apiroi算法在Hadoop MapReduce上的实现 输入格式: 一行为一个Bucket 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 1 3 5 7 9 12 13 15 17 19 21 23 25 27 29 31 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68…
郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档适用人员:技术人员 提纲: 所谓异常流量 如何识别异常流量 Apriori如何工作 如何让 Nginx 拦截可疑 IP 0x00,所谓异常流量 有害的异常流量大概分为以下几种: 僵尸网络中的节点对主站发起无目的的密集访问: 黑客.白帽子或某些安全公司为了做漏洞扫描,对主站各个 Web 工程发起字典式…
系列文章:<机器学习实战>学习笔记 最近看了<机器学习实战>中的第11章(使用Apriori算法进行关联分析)和第12章(使用FP-growth算法来高效发现频繁项集).正如章节标题所示,这两章讲了无监督机器学习方法中的关联分析问题.关联分析可以用于回答"哪些商品经常被同时购买?"之类的问题.书中举了一些关联分析的例子: 通过查看哪些商品经常在一起购买,可以帮助商店了解用户的购买行为.这种从数据海洋中抽取的知识可以用于商品定价.市场促销.存活管理等环节. 在美国…
首先简单描述一下Apriori算法:Apriori算法分为频繁项集的产生和规则的产生. Apriori算法频繁项集的产生: 令ck为候选k-项集的集合,而Fk为频繁k-项集的集合. 1.首先通过单遍扫描数据集,确定每个项的支持度.一旦完成这一步,就可以得到所有频繁1-项集的集合F1 2.接下来,该算法将使用上一次迭代的发现的频繁(k-1)-项集,产生新的候选k-项集.候选的产生使用apriori-gen函数实现. 3.为了对候选项的支持度的计算,需要再扫描一遍数据集.使用子集函数确定包含在每一个…
郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档适用人员:技术人员 提纲: 所谓异常流量 如何识别异常流量 Apriori如何工作 如何让 Nginx 拦截可疑 IP 0x00,所谓异常流量 有害的异常流量大概分为以下几种: 僵尸网络中的节点对主站发起无目的的密集访问: 黑客.白帽子或某些安全公司为了做漏洞扫描,对主站各个 Web 工程发起字典式…
一.Apriori算法性质 性质一: 候选的k元组集合Ck中,任意k-1个项组成的集合都来自于Lk. 性质二: 若k维数据项目集X={i1,i2,-,ik}中至少存在一个j∈X,使得|L(k-1)(j)|<k-1,则X不是频繁项集.即若Lk-1中有一个元素C包含一个项目i,使得|L(k-1)(j)|<k-1,则所有Lk-1与C中元素连接生成的候选k维数据项集不可能是频繁项目集. eg.购物篮中的任意一个项,如果它没有出现在至少本篮中两个项组成的至少两个频繁项对中,那么它不会是本篮中频繁三元组中…
http://blog.csdn.net/pipisorry/article/details/48914067 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Leskovec courses学习笔记之关联规则Apriori算法的改进:非hash方法 - 大数据集下的频繁项集:挖掘随机采样算法.SON算法.Toivonen算法 Apriori算法的改进:大数据集下的频繁项集挖掘 1. 前面所讨论的频繁项都是在一次能处理的情况.如果数据量过大超过了主存的大小,这…
       大数据这个名词是被炒得越来越火了,各种大数据技术层出不穷,做数据挖掘的也跟着火了一把,呵呵,现今机器学习算法常见的并行实现方式:MPI,Map-Reduce计算框架,GPU方面,graphlab的图并行,Spark计算框架,本文讲讲一些机器学习算法的map-reduce并行策略,尽管有些算法确实不适合map-reduce计算,但是掌握一些并行思想策略总归不是件坏事,大家如果对某个算法有更好的并行策略,也请多多指教,欢迎大家交流,OK,下面先从一个最基本的均值.方差的并行开始.  …
Mapreduce的文件和hbase共同输入 package duogemap;   import java.io.IOException;   import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Result; i…
mapreduce多文件输出的两方法   package duogemap;   import java.io.IOException;   import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.NullWritable; import org.apach…
package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text…
Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP 的需求,我们需要 mapreduce 与 mysql 进行数据的交互,而这些特性正是 hbase 或者 hive 目前亟待改进的地方. 好了言归正传,简单的说说背景.原理以及需要注意的地方: 1.为了方便 MapReduce 直接访问关系型数据库(Mysql,Oracle),Hadoop提供了DBI…
链接多个MapReduce作业 执行多个数据集的联结 生成Bloom filter   1.链接MapReduce作业   [顺序链接MapReduce作业]   mapreduce-1 | mapreduce-2 | mapreduce-3 | ...   [具有复杂依赖的MapReduce链接]        有时,在复杂数据处理任务中的子任务并不是按顺序运行的,因此它们的MapReduce作业不能按线性方式链接.例如,mapreduce1处理一个数据集,mapreduce2独立处理另一个数…
2016-12-21  16:53:49 mapred-default.xml mapreduce.input.fileinputformat.split.minsize 0 The minimum size chunk that map input should be split into. Note that some file formats may have minimum split sizes that take priority over this setting. 2016-12…
最近做了一个小的mapreduce程序,主要目的是计算环比值最高的前5名,本来打算使用spark计算,可是本人目前spark还只是简单看了下,因此就先改用mapreduce计算了,今天和大家分享下这个例子,也算是对自己写的程序的总结了. 首先解释下环比,例如我们要算本周的环比,那么计算方式就是本周的数据和上周数字的差值除以上周数值就是环比了,如果是月的环比就是本月和上月数据的差值除以上月数字就是本月环比了.不过本mapreduce实例不会直接算出比值,只是简单求出不同时间段数值的差值,最终环比结…
在上一节我们分析了Child子进程启动,处理Map.Reduce任务的主要过程,但对于一些细节没有分析,这一节主要对MapOutputBuffer这个关键类进行分析. MapOutputBuffer顾名思义就是Map输出结果的一个Buffer,用户在编写map方法的时候有一个参数OutputCollector: void map(K1 key, V1 value, OutputCollector<K2, V2> output, Reporter reporter) throws IOExcep…
在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child类中的Main方法,这个方法是如何执行的. 1,从命令参数中解析相应参数,获取JVMID.建立RPC连接.启动日志线程等初始化操作: 父进程(即TaskTracker)在启动子进程时,会加入一些参数,如本机的IP.端口.TaskAttemptID等等,通过解析可以得到JVMID. String ho…
在上面一节我们分析了JobTracker调用JobQueueTaskScheduler进行任务分配,JobQueueTaskScheduler又调用JobInProgress按照一定顺序查找任务的流程,获得了任务之后,将任务封装为TaskTrackerAction数组返回的整个过程.TaskTracker通过心跳响应接收到了这个数组.本节我们继续分析,TaskTracker拿到了这个数组之后,如何对任务进行处理的. 1,TaskTracker在其方法offerService中,将得到的任务加入队…
在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体来说,存在一个抽象类:TaskScheduler,主要负责分配任务,继承该类的有几个类: CapacityTaskScheduler.FairScheduler.JobQueueTaskScheduler(LimitTasksPerJobTaskScheduler又继承于该类). 从名字大致可以看出…
上一节分析了Job由JobClient提交到JobTracker的流程,利用RPC机制,JobTracker接收到Job ID和Job所在HDFS的目录,够早了JobInProgress对象,丢入队列,另一个线程从队列中取出JobInProgress对象,并丢入线程池中执行,执行JobInProgress的initJob方法,我们逐步分析. public void initJob(JobInProgress job) { if (null == job) { LOG.info("Init on…
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 大家都知道用mapreduce或者spark写入已知的hbase中的表时,直接在mapreduce或者spark的driver class中声明如下代码 job.getConfiguration().set(TableOutputFormat.OUTPUT_TABLE, tablename); 随后mapreduce在mapper或者reducer中直接context写入即可,而spark则是…
MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的诸如Web请求日志.爬虫抓取的文档之类的数据需要处理,由于数据量巨大,只能将其分散在成百上千台机器上处理,如何处理并行计算.如何分发数据.如何处理错误,所有这些问题综合在一起,需要大量的代码处理,因此也使得原本简单的运算变得难以处理. 为了解决上述复杂的问题,Google设计一个新的抽象模型,使用这…
太久没动这里,目前人生处于一个新的开始.这次博客的内容很久前就想更新上来,但是一直没找到合适的时间点(哈哈,其实就是懒),主要内容集中在使用Mongodb时的一些隐蔽的MapReduce问题: 1.Reduce时的计数问题 2.Reduce时的提取数据问题 另外,补充一个小tips:mongoDB中建立的索引,优先使用固定的,而不要使用范围. 一.MapReduce时的计数问题 这个问题主要出现在使用“+1”的思路去计算累计次数时.如果在Map后的某一类中,记录量过大,就会导致计数失败. 具体演…
有很长一段时间没更新博客了,因为最近都比较忙,今天算是有点空闲吧.本文主要是介绍MapReduce在MongoDB上的使用,它与sql的分组.聚集类似,也是先map分组,再用reduce统计,最后还可选性地使用finalize调整最终结果.好了,来介绍下我所使用版本是MongoDB2.4.5,然后我还使用了MongoVUE(一款非常不错的图形化mongodb管理工具)帮助我协同操作. 1.原始数据,待使用的Collection中有三条doc: 而且它们的数据格式为:   可能很多人并不注意mon…
主从结构 主节点,只有一个 : JobTracker   ,JobTracker 一般情况下,运行在 namenode 这台机器上. 从节点,有很多个 : TaskTrackers  ,  部署在剩下的 datanode 上. 这里谈的 JobTracker .TaskTrackers 都是 JVM. JobTracker 负责: 接收客户提交的计算任务 计算任务: 肯定是一段代码---你要怎么操作我的数据. 把计算任务分给TaskTrackers 执行 监控TaskTracker的执行情况 我…
学习 hadoop,必不可少的就是编写 MapReduce 程序.当然,对于简单的分析程序,我们只需一个 MapReduce 任务就能搞定,然而对于比较复杂的分析程序,我们可能需要多个Job或者多个Map或者Reduce进行分析计算. 本课程我们主要学习多个 Job 或者多个 MapReduce 的编程形式. MapReduce 的主要有以下几种编程形式. 迭代式 MapReduce MapReduce 迭代方式,通常是将上一个 MapReduce 任务的输出作为下一个 MapReduce 任务…
MapReduce应用场景 前一阵子参加炼数成金的MapReduce培训,培训中的作业例子比较有代表性,用于解释问题再好不过了.有一本国外的有关MR的教材,比较实用,点此下载. MR能解决什么问题?一般来说,用的最多的应该是日志分析,海量数据排序处理.最近一段时间公司用MR来解决大量日志的离线并行分析问题. MapReduce机制 对于不熟悉MR工作原理的同学,推荐大家先去看一篇博文:http://blog.csdn.net/athenaer/article/details/8203990 常用…