Spark的诞生是基于内存的计算,处理速度在计算过程中多次迭代优于MapReduce. Apriori算法 ... 对于一个给定事务集合T,可以分为1-项集,2-项集,…,K-项集,K ... 目前,Spark整个生态生态系统中核心框架spark基础上,提供四个范畴计算框架,分别是: ... RDD:Resilient Distributed Datasets,弹性分布式数据集.

注脚

1.Spark在智慧图书馆建设中的应用探索 2017年12月22日

2.目 录 一、Spark研究背景和研究现状 二、Spark平台的相关技术 三、基于Spark平台关联规则的研究 四、阶段目标与展望

3.一、Spark研究背景和研究现状 (一)背景 大数据时代背景下 ,很多企业和研究机构都在研究挖掘海量数据及利用,将带动一波新的快速增长 。 大数据处理平台生态圈的更新 ,由早期的Apache开源项目Hadoop中的 HadoopHDFS 、 HadoopMapReduce、HBase、Hive 的逐步产生的可扩展分布式处理平台 。 Spark 的诞生是基于内存的计算,处理速度在计算过程中多次迭代优于 MapReduce Apriori算法是关联规则挖掘的经典算法之一,它是基于用户的相关行为数据,通过挖掘频繁项集,找出彼此之间的关系。

4.

5.01 02 03 04 First one 仅支持Map和Reduce两种操作 Second one 迭代计算效率低(如机器学习、图计算等) Fourth one 不适合交互式处理(数据挖掘) Third one 不适合流式处理(点击日志分析) MapReduce框架局限性

6.MapReduce编程不够灵活 尝试scala函数式编程语言 现有的各种计算框架各自为战 批处理:MapReduce、Hive、Pig 流式计算:Storm 交互式计算:Impala 能否有一种灵活的框架可同时进行批处理、流式计算、交互式计算等?

7.在一个统一的框架下,进行批处理、流式计算、交互式计算

8.Spark 特点 高效 与hadoop集成 易用 内存计算引擎 DAG 图 比 MapReduce 快 10~100 倍 读写 HDFS/Hbase 与 YARN 集成 提供了丰富的 API ,支持 Java , Scala , Python , R 四种语言 代码量比 MapReduce 少 2~5 倍

9.(二)Spark研究现状 (1)Spark发展 Spark从2009年诞生,当下进入了快速发展期,国内目前主要集中在一些互联网行业,比如阿里巴巴、百度、搜狐等。例如腾讯公司数据仓库TDW大量使用Spark替代原来的Hadoop MapReduce,使性能得到有效提高,高校现在针对Spark研究相对较少,随着智慧校园的建设模式的提出,更多的高校老师加入到研究Spark如何处理海量没有被深入挖掘出的数据。

10.(二)Spark研究现状 (2)关联规则模型研究现状 关联分析是Agrawal于1993年提出的,对博客在商店购物零售数量进行分析,从中找出可能同时购买的商品的集合,帮助销售上有目的为顾客推荐商品,有效引导购物。

11.(二)Spark研究现状 (3)关联规则Apriori算法模型 Apriori算法是挖掘关联规则的频繁项集。 首先定义两个互相独立的集合A和B,假设A和B之间有一定的关联性,存在关联规则。用支持度和置信度来说明:(1)支持度 support(A=>B ) = P(A∪B) 即 P(A∪B) 的同时出现的概率;(2)置信度A和B在一定条件下出现的概率,即confidence = P(B|A),揭示了A出现时,B是否也出现或有多大的概率出现。

12.(二)Spark研究现状 (3)关联规则Apriori 算法模型

13.(二)Spark研究现状 (3)关联规则Apriori 算法模型 原始数据中每一行称作一个事务,包含顾客一次购买的全部商品。如 “milk” 就是一个项。包含 0 个或多个项的集合被称作项集。因此每一个事务可以看做一个项集,事物的一个子集也可以看做一个项集。如果一个项集包含 K 个项,则称为 K- 项集。对于一个给定事务集合 T ,可以分为 1- 项集, 2- 项集, … , K- 项集, K 是 T 中最大事务宽度。

14.(二)Spark研究现状 (4)基于Spark关联规则Apriori算法模型的应用 传统基于Hadoop MapReduce 因为多次迭代,I/O访问次数多,需要处理的时间增长,影响了服务需求,因此借助Spark的基于内存的运算,快速迭代的并行化计算优势,可提高关联规则挖掘的效率。 在挖掘用户产生数据中相关联信息的同时, 及时推送 读者可能感兴 趣 的书籍。 比如学校图书馆个性化图书推荐, 都是基于关联规则的预处理,其中 询问者是学校老师和学生用户, 最终 回答者担任倒角色就是一个推荐系统的作用。

15.二、Spark平台的相关技术 (一)Spark简介 Spark 是UC Berkeley AMP lab所开源的类Hadoop MapReduce通用并行计算框架,基于内存的快速通用可扩展数据分析引擎。 目前 ,Spark整个生态生态系统中核心框架spark基础上,提供四个范畴计算框架,分别是: Spark streaming 支持流运算 MLbase 底层分布式机器学习库和机器学习功能 Graphx 并形图计算框架 SparkSQL 支持结构化数据的SQL查询及分析查询引擎

16.Spark生态系统 Spark Streaming Spark SQL Graphx MLlib Machine learning Spark MPI MapReduce Mesos YARN HDFS Tachyon

17.二、Spark平台的相关技术 (二)Spark程序运行模式-独立(Standlone)模式 Master Slave Slave Slave Master zookeeper Task Task Task Task Task Task Task Task Task Task Task Task Executor Executor Executor Driver Driver YourApplication Your Application

18.二、 Spark 平台的相关技术 (三) Spark 核心概念和基本操作 RDD : Resilient Distributed Datasets , 弹性分布式数据集 分布在集群的只读对象集合(由多个Partition构成) 可以存储在磁盘或内存中(多种存储级别) 通过并行“转换”操作构造 失效后自动重构

19.1 2 3 4 5 6 7 RDD 1 partitions 作用在RDD上的operation 2 3 4 5 6 7 8 map( + 1 ) RDD 2 Operation saveASTEXTFILE(“HDFS://…”) HDFS Storage System Operation Operator示例

20.RDD 基本操作: Transformation (转换) 可通过 Scala 集合或者 Hadoop 数据集构造一个新的 RDD 通过已有的 RDD 产生新的 RDD 举例 : map , filter , groupBy , reduceBy Action (行动) 通过 RDD 计算得到一个或者一组值 举例: count , collect , save

21.一个完 整 的实例:wordcount import org.apache.spark._ import SparkContext._ object WordCount { def main(args: Array[String]) { if (args.length != 3 ){ println("usage is org.test.WordCount <master> <input> <output>") return } val sc = new SparkContext(args(0), "WordCount", System.getenv("SPARK_HOME"), Seq(System.getenv("SPARK_TEST_JAR"))) val textFile = sc.textFile(args(1)) val result = textFile.flatMap(line => line.split("\s+")) .map(word => (word, 1)).reduceByKey(_ + _) result.saveAsTextFile(args(2)) } } Master 地址 依赖的 jar 包 Spark 安装 目录 作业名称 输入数据所在目录,比如 : hdfs://host:port/input/data 数据输出目录,比如 : hdfs://host:port/output/data

22.三、基于Spark平台Apriori关联规则算法研究 近年来,随着国内高校图书馆的规模越来越大,业务流程应用数据挖掘技术,对关联规则、聚类分析进行研究,在基于Hadoop平台提出一种MapReduce方式并行处理的Apriori算法,图书推荐服务在理论方面有了一些进展,相关算法被相继的提出和改进,利于从大量数据中找到隐藏的规则,进而挖掘出读者的借阅兴趣。改进和优化频繁项集的产生,在海量数据挖掘中大大提高效率,例如基于Spark框架的Apriori关联规则挖掘算法,提出分布式并行化算法,适用于大数据关联规则的挖掘。

23. 应用 数据来源:

24. 以安徽农业大学图书馆 2010-2015年的所有图书借阅历史数据为实验数据 , 对前文提出的关联规则兴趣模型进行验证。通过迭代调用 transformation 和 Action 操作,每次迭代中利用上一次迭代结果进行求解。对数据集 D 设置最小支持度阈值 minSup=0.4. 置信度阈值 minConf=0.7

25.(三)应用 A priori 算法设计 以读者借阅历史记录 为 基础, 通过图书馆数据库积累的历史记录,包括证件号,图书 MARC 号,借阅时间,归还时间,续借次数,图书类别信息构建模型。 建立了基于读者身份、读者专业、图书类型等多维属性读者借阅关联规则挖掘模型,利用 Spark 框架技术,运用 Apriori 算法的剪枝思想改进频繁项,所建模型可以挖掘读者借阅图书类型之间关联关系,提高关联效率。 通过类似行为或偏好的用户群进行分析和预测得到用户兴趣偏好 。

26.(三)应用 A priori 算法设计

27.(三)应用 技术架构设计与推荐系统的部署 本系统具有3个节点的Spark集群,每个节点配置完全一样,3个节点中一个是Master节点,其他均为Slave节点,同时这些节点还运行了分布式存储框架HDFS的服务。 项目 项目配置 CPU 8 核心 2.4GHz 内存 5GB 硬盘 1TB 网卡 千兆网卡 操作系统 CentOs 6.5 Spark 版本 Spark 1.5.2

28.(三)应用 基于Spark的设计 采用Scala语言,基于Spark实现,运行框架由Drive和Executor构成。把过滤推荐算法分成很多算子,计算基于RDD实现。

29.(三)应用 技术架构和部署架构 类实时处理层 Web Service Spark MVC Logback Map/Reduce Mahout FTP Sqlite HDFS HBase JDBC HDFS 工具 Spark Spark streaming MLLib 实时处理层 数据层访问层 数据层 离线加工层

30.(三)应用 基于 关联规则的 子系统设计 统一用户登录系统 资源共享平台 Mm Spark Cluster Mm MLib Hadoop Cluster Mahout 关联规则 Apriori 算法模块 推荐库信息库 连接 访问 用户信息文档库

31.(四)目标与展望 大数据的发展是因为现代互联网中蕴藏丰富的数据信息,有效的挖掘和应用是大数据平台考虑和需要解决的问题。Spark的出现让从传统Hadoop Mapreduce模式转向了基于内存的迭代式方式,推荐系统是一种从用户信息中挖掘信息的应用,推荐算法中不断的迭代就非常适合在Spark平台运行,因此提出了基于Spark平台的图书推荐系统。 通过Spark平台的成功搭建,以及Apriro关联规则算法的模型应用,着重研究了该算法在Spark平台如何进行并行化设计及实现。 但其他相关的推荐算法并行化与平台自身的优化尚出于初级阶段,以及如何通过Apriori算法得出的频繁项集应用到推荐系统,开发框架Spring、Spring Web MVC、Spring Data需要下一步继续做的工作。

user picture

相关文档

  • 大规模实践基于Docker的MySQL私有云平台。集成高可用、快速部署、自动化备份、性能监控、故障分析、过载保护、扩容缩容等多项自动化运维功能。数据库高可用是不容忽视的,在Docker容器分配时如何保障主从不在同一宿主机上呢?我们通过自研Docker容器调度平台,自定义Docker容器的分配算法。实现了MySQL的高密度、隔离化、高可用化部署。同时结合我们自研的数据库中间件,支持了分片集群及无感知的高可用切换功能。截止目前平台支撑了目前总量90%以上的MySQL服务(实际数量超过2000个),资源利用率提升30倍,数据库交付能力提升70倍。并且经受住了十一黄金周、春节票务业务高峰期的考验。未来将致力于数据库自动化向智能化的推进。

  • 在云时代的今天,企业数据库面临着复杂的选择,数据库异构迁移往往达不到预期效果,樊文凯想大家分享了ADAM数据库和应⽤用迁移(Advanced Database & ApplicationMigration, 以下简称ADAM),ADAM是阿里云结合阿里巴巴多年年内部业务系统数据库和应⽤用异构迁移的经验(去IOE),⾃自主研发的、迁移ORACLE数据库和应⽤用⾄至阿⾥里里云相关云产品的专业产品,分享了ADAMA的结构、高性能、数据库割接、智能分析、所用的生态工具等,典型的数据库中出现的痛点。

  • 主要介绍阿里云MongoDB服务使用上的一些最佳实践,以及对MongoDB的部署、参数调优

  • Lindorm 是新一代面向在线海量数据处理的分布式数据库,阿里的技术专家通过分享这些多种场景下的数据存储技术实践,帮助企业更好地理解各种数据存储技术的特点,针对自己的业务发展对数据存储技术进行选择和组合。