[发明专利]一种Python-Web环境中多用户共享使用Spark集群的实现方法和系统有效
申请号: | 201910568205.2 | 申请日: | 2019-06-27 |
公开(公告)号: | CN110471777B | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 易秀娟;孟珍;王学志;周园春 | 申请(专利权)人: | 中国科学院计算机网络信息中心 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F16/25;G06F16/28 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 python web 环境 多用户 共享 使用 spark 集群 实现 方法 系统 | ||
本发明涉及一种Python‑Web环境中多用户共享使用Spark集群的实现方法和系统。本发明引入多进程来支撑多个Spark上下文,能够利用有限数量的Spark上下文来服务和支持多用户的任务计算请求;利用协程而不是线程来守护子进程,协程之间自主调度;能够将任务计算结果或状态异步返回以便实时响应用户的请求,满足了Web实时交互式使用的需求;利用了Spark任务间调度的特性,对于一些耗时较长的任务,给予用户是否终止该任务的权限,能够让Web用户终止正在运行的Spark任务。本发明能够解决Python开发环境中多Web用户共享使用Spark集群的问题。
技术领域
本发明属于软件设计与应用技术领域,涉及一种应用技术实现方式,尤其涉及一种Python 开发环境中多用户通过Web交互式使用Spark集群的应用技术实现方法和系统。
背景技术
Apache Spark作为当前最为流行的开源大数据计算框架,广泛应用于数据处理和分析应用。其使用方式一般有两种:一是通过spark-submit脚本提交打包成jar包的用户逻辑代码;二是用户可以通过spark-shell与Spark交互式地进行数据处理。这两种方式虽然足够灵活,但在某些实际应用中并不适用,比如当Web用户希望通过Web请求与Spark集群交互时。这种情况将面临多Web用户共享使用同一个Spark集群的问题。
Spark的“应用间调度”特性可以支撑多用户共享使用同一个Spark集群。“静态资源分配”是最简单的一种资源(内存、CPU核)分配方式,每个Spark应用可以使用的资源受静态配置决定。“动态资源分配”则可以在应用间动态进行资源调度,即当一个Spark应用需要更多计算资源时,它可以请求并利用未被占用的资源;另一方面,一个Spark应用应释放所占用的但并未使用的多余资源。
Apache Livy通过REST接口实现与Spark集群的交互。一定程度上可以解决上述问题。用户可以使用REST接口或RPC客户端库提交经序列化的Spark代码段、同步或异步检索结果并管理Spark上下文(SparkContext)。其实现了Spark上下文可以被多个用户,多个Spark任务共享使用。因其对提交的代码进行序列化处理,对于复杂的Spark任务分析代码,Livy在调试方面面临困难。且Livy项目目前还处于孵化期,许多功能有待增加和完善。
发明内容
本发明提出了一种技术架构,旨在说明如何利用Spark原生的“应用间调度”特性以及 Python对于异步、协程、多进程等的实现来解决Python开发环境中多Web用户共享使用Spark 集群的问题。
多Web用户共享使用Spark集群意味着多用户可同时通过Web交互的方式向Spark集群提交任务计算请求。每个用户的每次任务计算请求将触发生成一个Spark应用即一个Spark 上下文的实例。
因此,本发明涉及的技术架构包含下述具体问题的解决:
(1)需要引入多进程来支撑多个Spark上下文,以便同时支持多用户的任务计算请求,方便独立管理单个任务生命周期。然而,可并发的进程数量相较于用户请求数量将小得多。因此,需要解决如何利用有限数量的Spark上下文来服务所有用户的请求。
(2)一个Spark计算任务通常至少需要秒级时间,用户阻塞等待任务计算结果显然不符合Web实时交互式使用方式,因此需要将任务计算结果或状态异步返回以便实时响应用户的请求。
(3)对于一些耗时较长的任务,应给予用户是否终止该任务的权限。因此需要解决如何让Web用户终止正在运行的Spark任务。
本发明解决上述问题采用的实现方式是:
对于问题(1):
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算机网络信息中心,未经中国科学院计算机网络信息中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910568205.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:应用数据通信方法、装置及系统
- 下一篇:插件管理系统及方法