随着精准营销、智能运维等机器学习、AI应用需求逐渐增多,云南公司原计划购买商业AI软件扩展大数据平台功能,但通过试用,效果不佳且价格不菲。之后,通过自研搭建Hadoop数据科学开发环境,为数据科学工程师提供安全方便的开发工具,积极推进大数据平台建设增效工作。
1、解决思路:
云南公司大数据平台已通过租户方式向多个部门和项目提供数据和计算资源,且有严格的安全访问控制。另外Hadoop集群已部署Spark模块,本身就具备机器学习计算能力,只不过使用非常不方便。因此计划通过研究开源软件,找寻Hadoop数据科学开发环境解决方案,并满足以下要求:
?安全管控:支持多用户使用,且兼容当前Hadoop多租户账号权限,数据和计算队列访问安全可控。
?方便实用:提供主流数据科学开发环境(如Python+Anaconda),符合开发人员使用习惯。
?开发能力:可进行Spark分布式机器学习建模,也可以实现单机开发建模。支持常用机器学习、深度学习等建模算法,并可灵活扩展。
经研究评估和测试验证,最终选定:Jupyterhub+Jupyterlab+Livy的解决方案:
该方案有以下特点:
✔通过Jupyterhub实现多用户访问环境,沿用大数据平台账号认证和授权体系。
✔由Jupyterlab提供网页IDE界面(Jupyter Notebook升级版),支持Python、R、Scala多语言开发环境,符合数据科学开发使用习惯,且功能扩展性强;
✔可自定义计算环境(Spark或单机环境),访问Hadoop数据,调用YARN计算资源,执行机器学习、深度学习(TensorFlowOnSpark)计算任务。
✔开源软件,免费。
2、部署方案
(1)系统架构
整个数据科学开发环境部署在一个大数据平台前置机上,包括JupyterHub、Jupyterlab、Livy三个核心组件。
(2)访问方式
开发人员通过浏览器使用大数据平台账号登录JupyterHub,成功后每个账号会单独运行一个Jupyterlab服务,之后即可进行交互式开发,执行本地任务或Spark任务。
(3)开发方式
JupyterLab是Jupyter开源项目提供的最新数据科学WEB IDE开发工具,功能强大,且包含了原Jupyter Notebook的所有功能。
开发环境通过Jupyter Sparkmagic Kernel封装了Livy服务调用,可以通过PySpark(Python)、Spark(Scala)以交互式方式进行Spark应用建模。
还可以自定义Spark任务环境:由于Hadoop分布式计算的特性,需事先把依赖环境(如Pandas、Tensorflow等)打包为文件,上传至HDFS,在执行具体任务的时候指定运行环境。
3、应用情况
通过Jupyterhub+Jupyterlab+Livy解决方案节约向三方购置开发环境费用100余万元,目前云南公司已针对IOP精准营销项目进行应用实践。
使用机器学习算法进行“人-货”匹配建模,已输出终端换机模型、5G套餐适配等模型至IOP,提升了精准营销自动化适配能力。同时提高IOP策略发布效率,有效降低了运营分析和报表支撑难度及人工成本。目前基于平台将在9月内完成5G流量包适配、5G潜在换机、潜在携转客户模型的输出,进一步提升业务推荐成功率。
投稿单位:云南公司
关注微信公众号
“开源节流 降本增效”
随时关注小伙伴们的动态!
有好建议、好做法、好素材,可整理发送至jbzx@chinamobile.com