sparkmagic 数据鉴权架构
2022-12-08 15:02:15 0 举报
生产环境机器学习平台(jupyterhub)访问spark集群,通常使用sparkmagic,但它没有数据访问鉴权。自研实现数据鉴权。用户id通过spark的conf传递。
作者其他创作
大纲/内容
sparkmagic
注入加载器
SparkSession
+ sql(sql):DataFrame...
修改检测
代码植入
动态修改
Client
+ sql(sql): DataFrameProxy
构造
payload 脚本
DataFrame
+ show(num)+ take(num): list[Row]+ collect(): list[Row]+ toPandas(): pandas.DataFrame+ groupBy(col): GroupData...
sys
+ meta_path: tuple[Importer]
SparkMagicBase
- cell_keyword_checker(cell)+ execute_spark(cell)+ execute_sqlquery(cell)
check_meta_path_modified
DataFrameProxy
- proxy: DataFrame+ show(num)+ take(num)+ collect()+ toPandas()+ 自动代理其他函数: DataFrameProxy
LivySession
+ start()
黄色为自研模块
class_method_call_stack_check_decorator(对目标函数加调用者锁)
spark
SparkSessionProxy
- proxy: SparkSession- user_id: str+ sql(sql): DataFrameProxy- 鉴权(sql)- 上报(sql)
PostImportFinder
+ find_module(fullname)+ load_module(fullname)- _post_import_hooks: list[func]
sparkmagic 鉴权架构
执行
remote spark client
0 条评论
下一页