一种大数据数仓多租户管理的系统及方法与流程

文档序号:31952572发布日期:2022-10-28 21:22阅读:38来源:国知局
1.本发明涉及大数据
技术领域
:,具体为一种大数据数仓多租户管理的系统及方法。
背景技术
::2.谈到大数据,首先想到的是hadoop、hive、spark等新兴技术,这些新型的大数据中间件虽然在存储与计算方面增强了很多,但是在权限管理、多租户管理方向比较薄弱,客户端身份基本都是由主机的操作系统决定,这就带来了新的问题,在新型的大数据技术体系下的数据仓库的权限该如何管理?大数据一般使用分布式存储作为数据底座,使用多种分布式计算引擎作为计算方案,例如:apachehive、apachespark、impala等,这样复杂的环境该如何一站式解决权限和多租户问题?3.hadoop社区版本是没有安全认证的,因此只要随意exporthadoop_user_name=anyone,就可以伪装为任意用户操作集群上的数据了,存在非常大的安全隐患。大数据环境存在多种复杂计算引擎混合使用的场景,例如:apachehive、apachespark、impala混合使用等,需要有一站式的权限解决方案。技术实现要素:4.针对上述存在的技术不足,本发明的目的是提供一种大数据数仓多租户管理的系统及方法。5.为解决上述技术问题,本发明采用如下技术方案:6.hadoop支持两种不同的用户身份判别方法,分别为simple和kerberos。7.(1)simple模式下,客户端身份由主机的操作系统确定,比如在类unix系统中,用户名为命令whoami的输出。8.(2)kerberos是一种基于对称密钥的身份认证协议,它作为一个独立的第三方的身份认证服务,可以为其它服务提供身份认证功能,且支持sso(即客户端身份认证后,可以访问多个服务如hbase/hdfs等)。在kerberos模式下,客户端身份由kerberos凭证确定,比如在一个kerberized环境中,用户可能使用kinit工具得到了一个kerberosticket-granting-ticket(tgt)且使用klist确定当前的principal。9.kerberos是一种性能比较高的认证和授权,并且能够进行数据加密的安全系统,但是并不是特别适合大规模的hadoop集群,原因有四点:10.(1)kerberos存在单点故障:依赖的kdc服务宕机时,整个系统有可能瘫痪。11.(2)hadoop集群节点数多,配置和维护一个高性能、高可用的kerberos系统难度非常高,而且kerberos带来的用户和用户组的管理更加复杂,权限维护的成本较高。12.(3)hadoop集群上线kerberos后,通常原来的用户和文件,可能都失效导致数据流失。尤其是一些根目录,往往需要格式化整个系统才能使用。13.(4)kerberos只能控制访问或者拒绝访问一个服务,不能控制到很细的粒度,比如hdfs的某一个路径,hive的某一个表,对用户级别上的认证并没有实现。14.综上述kerberos认证技术在大规模集群以及多租户的环境下存在问题较多,所以本方案在底层存储层仍然采用simple认证。15.本发明提供一种大数据数仓多租户管理的系统,包括:16.底层存储层,即分布式存储系统的权限控制,用于主要管理文件系统的权限,该层解决文件系统底层的权限问题,针对超管用户、系统用户做权限控制,尤其是一级目录二级目录的规范使用,采用simple授权方案,另外针对多租户回收站禁用机制以及重点目录保护机制做二次研发;17.计算引擎层,即分布式计算引擎对数据的读写操作权限控制,用于主要管理计算任务的数据访问;18.上层应用层,即面向用户的权限控制层,用于管理用户使用各种计算引擎进行数据开发的权限控制。19.优选地,所述底层存储层包括文件系统的超管用户、系统用户、根目录、一级目录和保护目录白名单。20.优选地,所述计算引擎层包括:21.权限管理模块,用于对不同的文件进行授权,包括:数据逻辑层和物理层授权;22.插件适配模块,定期从权限管理模块拉取策略,根据策略执行访问决策树判断;23.客户端sdk模块,用于定期缓存用户独立的缓存文件;24.日志审计模块,针对各个计算引擎访问数据文件,进行标准化收集生产审计日志,异步批量传入检索系统进行归档检索等审计服务。25.优选地,所述上层应用层用于解决用户以及组账号分配管理的问题,针对数据类应用进行权限管理,包括但不限于统一采集接入平台、集中处理平台、组织管理平台、全域治理平台、融合共享平台、分析挖掘平台、知识图谱平台、管理平台、可视化平台;26.访问权限定义了”用户-数据角色-资源-权限“这四者间的关系,基于策略来抽象这种关系,进而延伸出自己的权限模型。”用户-资源-权限”的含义详解:27.用户:由user或group来表达,user代表访问资源的用户,group代表用户所属的用户组。28.数据角色:一个数据角色可以授权给多个用户,同样一个数据角色可以申请多种资源。29.资源:不同的组件对应的业务资源是不一样的,比如:hdfs的filepath、hbase的table,column-family,column、hive的database、table、column;yarn的对应的是queue等。30.权限:由(allowacl,denyacl)来表达,类似白名单和黑名单机制,allowacl用来描述允许访问的情况,denyacl用来描述拒绝访问的情况,不同的组件对应的权限也是不一样的。31.本发明还提供一种大数据数仓多租户管理方法,其特征在于,采用一种大数据数仓多租户管理的系统,结合双端认证策略,提供一站式解决大数据环境权限问题。32.优选地,所述双端认证策略指每一层均会在服务端、客户端进行联合权限认证,双端主要是为了高可用,如果权限控制系统的服务端宕机,可以通过客户端缓存的权限元信息控制数据,不会引发系统级故障。33.本发明的有益效果在于:通过三层双端的大数据权限体系的建设,可以支撑在多租户以及多种计算引擎并存的复杂环境下,安全又高效的解决数据安全的问题。附图说明34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。35.图1为本发明实施例提供的一种大数据数仓多租户管理的系统中底层存储层的结构示意图;36.图2为本发明实施例提供的一种大数据数仓多租户管理的系统中计算引擎层的结构示意图。具体实施方式37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。38.实施例1,一种大数据数仓多租户管理系统,包括:39.底层存储层,即分布式存储系统的权限控制,用于主要管理文件系统的权限,所述底层存储层包括文件系统的超管用户、系统用户、根目录、一级目录和保护目录白名单;40.计算引擎层,即分布式计算引擎对数据的读写操作权限控制,用于主要管理计算任务的数据访问,所述计算引擎层包括:权限管理模块、插件适配模块、客户端sdk模块、日志审计模块;41.上层应用层,即面向用户的权限控制层,用于管理用户使用各种计算引擎进行数据开发的权限控制,用于解决用户以及组账号分配管理的问题,针对数据类应用进行权限管理,包括但不限于统一采集接入平台、集中处理平台、组织管理平台、全域治理平台、融合共享平台、分析挖掘平台、知识图谱平台、管理平台、可视化平台。42.实施例243.一种大数据数仓多租户管理方法,构建实施例1所述的一种大数据数仓多租户管理的系统,结合双端认证策略,提供一站式解决大数据环境权限问题。44.第一层:分布式文件系统存储层实现方案45.该层解决文件系统底层的权限问题,针对超管用户、系统用户做权限控制,尤其是一级目录二级目录的规范使用,采用simple授权方案,另外针对多租户回收站禁用机制以及重点目录保护机制做二次研发。46.(1)制定文件系统的超管用户以及系统用户,创建根目录以及一级目录。47.(2)针对hdfs源码二次开发,对非超管用户的skiptrash命令进行屏蔽,防止用户误删数据;48.(3)针对hdfs源码二次开发,增加保护目录白名单,针对系统级目录进行保护操作,防止用户误删数据。49.第二层:分布式计算引擎数据访问权限控制的实现方案:50.该层主要解决在多种计算引擎并存的复杂场景下如何解决数据权限问题,例如:apachehive、spark、impala、hbase、flink等。51.参照图1,该引擎主要分为权限管理模块、插件适配模块、客户端sdk模块、日志审计模块组成。52.(1)权限管理模块:管理员可以针对不同的文件进行授权,包括:数据逻辑层和物理层授权,例如:apachehive、hbase等库表可以抽象为数据逻辑层;底层的数据文件,可以抽象为数据物理层。53.(2)插件适配模块:插件化设计,可以实现hive、spark、hdfs、hbase等常用组件的支持,定期从权限管理模块拉取策略,根据策略执行访问决策树判断。54.(3)客户端sdk模块:每个用户独立的缓存文件,如果远程服务宕机则不影响客户端鉴权,客户端会定时更新缓存;更新缓存文件时,先写入tmp文件,再进行文件加锁rename,在客户端并发的情况下,权限也需要保证数据准确。55.(4)日志审计模块:针对各个计算引擎访问数据文件,进行标准化收集生产审计日志,异步批量传入检索系统进行归档检索等审计服务。56.第三层:数据应用层实现方案57.参照图2,该层主要解决用户以及组账号分配管理的问题,针对数据类应用进行权限管理,例如:统一采集接入平台、集中处理平台、组织管理平台、全域治理平台、融合共享平台、分析挖掘平台、知识图谱平台、管理平台、可视化平台等。58.访问权限定义了”用户-数据角色-资源-权限“这四者间的关系,基于策略来抽象这种关系,进而延伸出自己的权限模型。”用户-资源-权限”的含义详解:59.用户:由user或group来表达,user代表访问资源的用户,group代表用户所属的用户组。60.数据角色:一个数据角色可以授权给多个用户,同样一个数据角色可以申请多种资源。61.资源:不同的组件对应的业务资源是不一样的,比如:hdfs的filepath、hbase的table,column-family,column、hive的database、table、column;yarn的对应的是queue等。62.权限:由(allowacl,denyacl)来表达,类似白名单和黑名单机制,allowacl用来描述允许访问的情况,denyacl用来描述拒绝访问的情况,不同的组件对应的权限也是不一样的。63.通过对存储、计算、应用三层进行用户-数据角色-资源-权限四种角色联合控制,可以优雅的解决大数据存储、计算多种引擎并存的复杂环境下的权限问题。64.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1