Spark大数据算法平台
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法平台的架构和实现
算法平台的应用
算法平台未来的方向
总体架构
Zeppelin ThriW Server start
start
Web Server run
Spark-Repl
SparkIMain interpret
create SparkContext
YARN Cluster
总体架构2
每个训练任务(称为pipeline)会单独起一个Zeppelin的ThriW Server 初始化(Lazy):
模块分为两种类型:
• Transformer – 输入是1或多个DataFrame,输出是1或多个DataFrame • Model Trainer - 输入是1或多个DataFrame,输出是一个Model • 特殊模块 Model Transformer — 输入1个模型, 1或多个DataFrame,输出 1或多个DataFrame
•Web Server调用Marathon(Mesos)的Res5ul API启动Zepplin ThriW Server
•Zepplin ThriW Server会在YARN集群中创建一个常驻的Spark任务 执行: •Web Server中集成了Zeppelin Client,我们先将Pipeline和Module映射成为 Zeppelin的Note和Paragraph,然后就会被提交到Zeppelin的ThriW Server执 行 • Zeppelin的ThriW Server使用Spark-Repl(Spark的交互界面就是使用这个实 现的),将scala的代码编译后提交到常驻在YARN集群的Spark任务中执行
• 独立开发,经验,代码无法分享
平台基本目标
服务工程经验较少的数据科学家 •无需编程,模块拖拽完成模型训练处理流程的构建 •执行过程可视化 •方便地数据探索功能 覆盖机器学习应用的整个生命周期 •覆盖模型训练,导出,线上服务整个机器学习应用的生命周期 系统开放,高度可定制
•简便地模块定制,分享(适合工程能力强的资深用户)
模型训练 - 训练模型的运行和调试
模型训练 - Scala和Python自定义模块
模型训练 - 数据预览
对于每个模块输出的DataFrame,我们都提供了数据预览和用户自定义 SQL(SparkSQL)查询的功能
模型训练 - 数据探索
数据绘图:集成Pandas,matplotlib
模块定制
Notebook …… 将CML Studio的pipeline和module 转换为zeppelin的Note和paragraph
技术选型的考虑
选择Docker和Zeppelin的原因: • Mesos提供了方便的资源管理的功能 • Marathon提供了简便的应用管理的功能 • Zeppelin则提供了一个Spark交互执行的引擎
ZeppelinThriWServer Web Server Zeppelin Client
RemoteInterpreterServer
PySpark Interpreter ThriW Server SparkSQL Interpreter
Spark Interpreter
Spark IMai n
目录
背景介绍
算法平台的功能 算法平台的架构和实现
算法平台的应用
算法平台未来的方向
平台功能简介
整个平台由以下4个功能模块构成: • 模型训练
• 创建模型训练流程(Pipeline)
• 运行和调试模型训练流程
• 数据探索
• 模块定制(高级) • 训练结果导出 • 线上服务的开发支持
机器学习Sample Case
线上服务开发的支持
提供Jar包,用户只要在maven中 添加依赖,就能够使用相关的 API 开发步骤:
1. 初始化
2. 将输入数据转化为DataFrame 3. Load起已经保存的 Transformer和Model 4. 按照顺序调用Transform和 predict方法
目录
背景介绍
算法平台的功能
使用协同过滤算法进行电影推荐(Data from Ne5lex) 1. 训练数据(用户对于电影的评分数据)
2. 分流(训练集 / 测试级 7:3)
3. 模型训练
4. 模型检验
模型训练 – 流程创建
1. 点击相应模块,拖拽构成整个训练的流程
模型训练 – 流程创建
2. 填写相关模块的参数
模型训练 – 模块详解
Spark大数据算法平台
目录
背景介绍
算法平台的功能 算法平台的架构和实现
算法平台的应用
算法平台未来的方向
平台缘起
大背景:随着携程的业务发展,各个BU的机器学习的应用越来越多,训练 的数据集也越来越大,单机的模型训练方式很难满足实际的需要,所以越 来越多的同学会考虑使用Spark进行训练 直接使用Spark进行模型训练的难点(特别是对于非工程背景的数据科学 家): • 入门时间较长 • 环境设置麻烦 • 程序调试困难 • 关注太多细节
模块代码: • 一段普通的Spark的代 码 • 参数使用特殊的占位符 • 参数信息自动识别为配 置项
* 如果模块需要保存,则 相关逻辑必须封装为 spark.ml包中Transformer 和EsImator 的形式
训练结果的导出
导出的训练模型会保存在HDFS相关的路径下
训练结果的导出
查看已经保存的模型
执行引擎 - Docker
负责Zeppelin ThriW Server的生命周期的管理
执行引擎
Host Machine
Container1 Container2 …
Web Servபைடு நூலகம்r
HM 2
…
API
API
Hive / Spark / Hadoop Env Marathon Mesos
执行引擎 - Zeppelin
由于人力资源的原因,使我们选择使用开源产品或是在开源项目的基础上 进行2次开发
• 整体加速了项目的进展 • 在二次开发的过程中锻炼了团队的技术能力
经验分享
• 不断的打磨产品
• 目前的产品形态经过了几个不同版本的演化 • 产品的易用性和稳定性是它的生命,关注使用细节 • Example1 最初版本每个模块的结果都会落地,每个模块的输入输 出都是需要用户手动填写的 • Example2 批量结果导出的功能在最初的版本中不存在,只提供用 户手动导出单个模块的训练结果的功能 • Example 3 数据探索的功能是根据用户的需求加入的