Download presentation
Presentation is loading. Please wait.
1
Spark在智慧图书馆建设中的应用探索 2017年12月22日
2
目 录 一、Spark研究背景和研究现状 二、Spark平台的相关技术 三、基于Spark平台关联规则的研究 四、阶段目标与展望
3
一、Spark研究背景和研究现状 (一)背景 大数据时代背景下,很多企业和研究机构都在研究挖掘海量数据及利用,将带动一 波新的快速增长。
大数据处理平台生态圈的更新,由早期的Apache开源项目Hadoop中的HadoopHDFS、 HadoopMapReduce、HBase、Hive的逐步产生的可扩展分布式处理平台。 Spark的诞生是基于内存的计算,处理速度在计算过程中多次迭代优于MapReduce Apriori算法是关联规则挖掘的经典算法之一,它是基于用户的相关行为数据, 通过挖掘频繁项集,找出彼此之间的关系。
5
MapReduce框架局限性 01 02 03 04 仅支持Map和Reduce 两种操作 迭代计算效率低(如机器 学习、图计算等)
First one 仅支持Map和Reduce 两种操作 Second one 迭代计算效率低(如机器 学习、图计算等) 03 04 Third one 不适合流式处理(点 击日志分析) Fourth one 不适合交互式处理( 数据挖掘) MapReduce框架局限性
6
MapReduce编程不够灵活 尝试scala函数式编程语言 现有的各种计算框架各自为战 批处理:MapReduce、Hive、Pig 流式计算:Storm 交互式计算:Impala 能否有一种灵活的框架可同时进行批处理、流式计算、交互式 计算等?
7
在一个统一的框架下,进行批处理、流式计算、交互式计算
8
Spark 特点 内存计算引擎 DAG图 比MapReduce快10~100倍 高效 与hadoop集成 易用
提供了丰富的API,支持Java, Scala,Python,R四种语言 代码量比MapReduce少2~5倍 读写HDFS/Hbase 与YARN集成
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
支持结构化数据的SQL查 询及分析查询引擎
二、Spark平台的相关技术 (一)Spark简介 Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce通用并行计算框架,基于内存的快速通用可扩展数据分析引擎。 目前,Spark整个生态生态系统中核心框架spark基础上,提供四个范畴计算框架,分别是: Spark streaming 支持流运算 Graphx 并形图计算框架 SparkSQL 支持结构化数据的SQL查 询及分析查询引擎 MLbase 底层分布式机器学习库和机器学习功能
16
Spark生态系统 Spark Streaming Spark SQL Graphx MLlib Machine learning
MapReduce MPI Mesos YARN HDFS Tachyon
17
二、Spark平台的相关技术 (二)Spark程序运行模式-独立(Standlone)模式 Master Slave Executor
zookeeper Task Executor Driver YourApplication Your Application
18
二、Spark平台的相关技术 (三) Spark核心概念和基本操作
RDD:Resilient Distributed Datasets,弹性分布式数据集 分布在集群的只读对象集合(由多个Partition构成) 可以存储在磁盘或内存中(多种存储级别) 通过并行“转换”操作构造 失效后自动重构
19
saveASTEXTFILE(“HDFS://…”)
Operator示例 1 2 3 4 5 6 7 RDD 1 partitions 作用在RDD上的operation 8 map( + 1 ) RDD 2 Operation saveASTEXTFILE(“HDFS://…”) HDFS Storage System
20
RDD基本操作: Transformation(转换) 可通过Scala集合或者Hadoop数据集构造一个新的RDD 通过已有的RDD产生新的RDD 举例:map, filter,groupBy,reduceBy Action(行动) 通过RDD计算得到一个或者一组值 举例:count,collect,save
21
hdfs://host:port/input/data hdfs://host:port/output/data
一个完整的实例: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
以安徽农业大学图书馆 年的所有图书借阅历史数据为实验数据,对前文 提出的关联规则兴趣模型进行验证。通过迭代调用transformation和Action操作,每 次迭代中利用上一次迭代结果进行求解。对数据集D设置最小支持度阈值 minSup=0.4.置信度阈值minConf=0.7
25
(三)应用 Apriori算法设计 以读者借阅历史记录为基础,通过图书馆数据库积累的历史记录,包括证件号,图 书MARC号,借阅时间,归还时间,续借次数,图书类别信息构建模型。建立了基于 读者身份、读者专业、图书类型等多维属性读者借阅关联规则挖掘模型,利用 Spark框架技术,运用Apriori算法的剪枝思想改进频繁项,所建模型可以挖掘读者 借阅图书类型之间关联关系,提高关联效率。通过类似行为或偏好的用户群进行分 析和预测得到用户兴趣偏好。
26
(三)应用 Apriori算法设计
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 工具 Spark Spark streaming MLLib 实时处理层 类实时处理层 离线加工层 数据层访问层 数据层
30
(三)应用 推荐库 信息库 用户信 息文档 库 统一用户登录系统 资源共享平台 基于关联规则的子系统设计 Spark Cluster
Mm Spark Cluster MLib Hadoop Cluster Mahout 关联规则Apriori算法模块 推荐库 信息库 资源共享平台 用户信 息文档 库 访问 连接
31
(四)目标与展望 大数据的发展是因为现代互联网中蕴藏丰富的数据信息,有效的挖掘和应用是 大数据平台考虑和需要解决的问题。Spark的出现让从传统Hadoop Mapreduce模式 转向了基于内存的迭代式方式,推荐系统是一种从用户信息中挖掘信息的应用,推 荐算法中不断的迭代就非常适合在Spark平台运行,因此提出了基于Spark平台的图 书推荐系统。 通过Spark平台的成功搭建,以及Apriro关联规则算法的模型应用,着重研究 了该算法在Spark平台如何进行并行化设计及实现。 但其他相关的推荐算法并行化与平台自身的优化尚出于初级阶段,以及如何通 过Apriori算法得出的频繁项集应用到推荐系统,开发框架Spring、Spring Web MVC、Spring Data需要下一步继续做的工作。
Similar presentations