1.本发明涉及大数据技术领域,具体地说是一种实现用户和资源统一管控的大数据集群多租户系统及方法。
背景技术:2.共享型集群多租户数据资源隔离包括如下内容:
3.①
、用户数据隔离:用户数据隔离包括存储在hdfs上的数据隔离,hbase数据空间的隔离,hive数据表的隔离以及提交作业的计算资源yarn的队列资源隔离等。
4.②
、用户存储资源隔离:使用hdfs分布式文件系统的文件和目录权限以及对quotas配置,设定指定目录的名称、空间限额以及权限。
5.③
、计算资源隔离:在资源管理框架yarn上创建不同的队列queue,然后给不同的队列设置不同的资源(cpu+内存)配额,通过将队列使用权限分配给不同的用户,来实现计算资源的隔离,计算资源的分配主要是依据cpu虚拟核数和内存量。
6.大数据平台多租户架构包括如下内容:
7.①
、数据空间:数据空间是个逻辑上的概念,它将各类资源(hdfs、hbase、hive、yarn)按照一定的配额归属到某一数据空间下,然后将此数据空间的使用权限分配给用户,以数据空间为单位对资源进行统一分配。
8.②
、公平调度:是一种赋予作业(job)资源的方法,它的目的是让所有的作业随着时间的推移,都能平均的获取等同的共享资源。当单独一个作业在运行时,它将使用整个集群。当有其它作业被提交上来时,系统会将任务(task)空闲时间片(slot)赋给这些新的作业,以使得每一个作业都大概获取到等量的cpu时间。
9.③
、kerberos:kerberos可以将认证的密钥在集群部署时事先放到可靠的节点上。集群运行时,集群内的节点使用密钥得到认证。只有被认证过节点才能正常使用。企图冒充的节点由于没有事先得到的密钥信息,无法与集群内部的节点通信。
10.随着数据量的激增,以及hadoop生态系统的不断完善,越来越多的公司选择hadoop作为数据仓库,并在大数据集群上架设了越来越多的相对复杂的应用场景需求。在公司内部,多用户业务应用架设在同一个hadoop集群上,容易出现数据与集群资源混乱无序的状态,需要建立统一的调度平台实现数据统一管理、任务合理化调度,集群资源按需分配。对于创业团队及中小企业来说,硬件资源有限,这时做好资源的共享和隔离就显得尤为必要。
11.故如何实现将有限的节点同时分享给多租用户进行使用而又不互相影响是目前亟待解决的技术问题。
技术实现要素:12.本发明的技术任务是提供一种实现用户和资源统一管控的大数据集群多租户系统及方法,来解决如何实现将有限的节点同时分享给多租用户进行使用而又不互相影响的
问题。
13.本发明的技术任务是按以下方式实现的,一种实现用户和资源统一管控的大数据集群多租户系统,该系统包括管理侧k8s集群和租户侧openstack集群,管理侧k8s集群部署dataspace ui(数据空间用户界面)和dataspace api(数据空间api),通过iam鉴权的用户开通大数据服务,并通过数据空间对大数据的资源进行相应的操作;租户侧openstack集群部署空间管理模块和用户管理模块,空间管理模块和用户管理模块用于操作大数据集群的各类资源,并将各类资源按照配额统一添加到数据空间。
14.作为优选,所述用户管理模块用于将系统用户同步到ranger,同时为用户创建kerberos账号。
15.更优地,所述空间管理模块用于对空间的创建以及将已经创建好的空间指定给任一用户使用。
16.更优地,在所述空间管理模块内,创建hdfs、yarn、hive及hbase多种资源,设置资源的配额大小(存储空间、cpu、内存),同时将资源归属到数据空间。
17.更优地,该系统工作流程具体如下:
18.(1)、用户iam统一鉴权;
19.(2)、判断iam鉴权是否通过:
20.①
、若是,则执行步骤(3);
21.②
、若否,则结束;
22.(3)、开通大数据空间管理服务;
23.(4)、判断是否开通成功:
24.①
、若是,则执行步骤(5);
25.②
、若否,则结束;
26.(5)、通过空间管理模块和用户管理模块操作大数据集群的各类资源,并将各类资源按照配额统一添加到数据空间;
27.(6)、用户已分配集群资源。
28.一种实现用户和资源统一管控的大数据集群多租户方法,该方法是在管理侧k8s集群部署dataspace ui(数据空间用户界面)和dataspace api(数据空间api),通过iam鉴权的用户开通大数据服务,并通过数据空间对大数据的资源进行相应的操作;在租户侧openstack集群部署空间管理模块和用户管理模块,空间管理模块和用户管理模块用于操作大数据集群的各类资源,并将各类资源按照配额统一添加到数据空间。
29.作为优选,该方法具体如下:
30.基于kerberos实现接入大数据集群的用户的身份认证;
31.基于hadoop集群中的ranger组件实现用户和资源的统一管理;
32.用户管理模块将系统用户同步到ranger,同时为用户创建kerberos账号;
33.在空间管理模块,管理员创建包含hdfs、yarn、hive和hbase的多种资源,设置资源的配额大小(存储空间、cpu、内存),同时将资源归属到数据空间;
34.空间管理模块对空间的创建以及将已经创建好的空间指定给任一用户使用。
35.一种电子设备,包括:存储器和至少一个处理器;
36.其中,所述存储器上存储有计算机程序;
37.所述至少一个处理器执行所述存储器存储的计算机程序,使得所述至少一个处理器执行如上述的实现用户和资源统一管控的大数据集群多租户方法。
38.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如上述的实现用户和资源统一管控的大数据集群多租户方法。
39.本发明的实现用户和资源统一管控的大数据集群多租户系统及方法具有以下优点:
40.(一)本发明将用户管理模块和空间管理模块下沉到租户侧,空间管理的前端可以同时管理多个区域的多套大数据集群;
41.(二)本发明以空间为单位赋予租户使用的方案极简的做到了大数据集群中资源的有效隔离,很好的保护了单集群中多租户的数据安全;
42.(三)本发明通过共享型大数据集群把有限的节点同时分享给多组用户进行使用而又不互相影响;
43.(四)本发明对于中小企业以及创业型公司益于合理的利用有限的资源;
44.(五)本发明基于kerberos实现租户和服务的认证,基于ranger实现用户的同步和资源的权限分配,在多租户环境下,确保用户间数据的隔离;
45.(六)本发明基于ranger进行用户和资源管理的大数据集群多租户实现方案,针对共享型集群,将存储、计算等资源根据用户需求进行配额管控及资源隔离,并将不同用户的数据统一管理运维。
附图说明
46.下面结合附图对本发明进一步说明。
47.附图1为实现用户和资源统一管控的大数据集群多租户系统的结构框图;
48.附图2为实现用户和资源统一管控的大数据集群多租户系统的工作过程的流程框图。
具体实施方式
49.参照说明书附图和具体实施例对本发明的实现用户和资源统一管控的大数据集群多租户系统及方法作以下详细地说明。
50.实施例1:
51.如附图1所示,本发明的实现用户和资源统一管控的大数据集群多租户系统,该系统包括管理侧k8s集群和租户侧openstack集群,管理侧k8s集群部署dataspace ui(数据空间用户界面)和dataspace api(数据空间api),通过iam鉴权的用户开通大数据服务,并通过数据空间对大数据的资源进行相应的操作;租户侧openstack集群部署空间管理模块和用户管理模块,空间管理模块和用户管理模块用于操作大数据集群的各类资源,并将各类资源按照配额统一添加到数据空间。
52.本实施例中的用户管理模块用于将系统用户同步到ranger,同时为用户创建kerberos账号。
53.本实施例中的空间管理模块用于对空间的创建以及将已经创建好的空间指定给
任一用户使用。
54.本实施例中的在空间管理模块内,创建hdfs、yarn、hive及hbase多种资源,设置资源的配额大小(存储空间、cpu、内存),同时将资源归属到数据空间。
55.如附图2所示,该系统工作流程具体如下:
56.(1)、用户iam统一鉴权;
57.(2)、判断iam鉴权是否通过:
58.①
、若是,则执行步骤(3);
59.②
、若否,则结束;
60.(3)、开通大数据空间管理服务;
61.(4)、判断是否开通成功:
62.①
、若是,则执行步骤(5);
63.②
、若否,则结束;
64.(5)、通过空间管理模块和用户管理模块操作大数据集群的各类资源,并将各类资源按照配额统一添加到数据空间;
65.(6)、用户已分配集群资源。
66.实施例2:
67.本发明的实现用户和资源统一管控的大数据集群多租户方法,该方法是在管理侧k8s集群部署dataspace ui(数据空间用户界面)和dataspace api(数据空间api),通过iam鉴权的用户开通大数据服务,并通过数据空间对大数据的资源进行相应的操作;在租户侧openstack集群部署空间管理模块和用户管理模块,空间管理模块和用户管理模块用于操作大数据集群的各类资源,并将各类资源按照配额统一添加到数据空间;该方法具体如下:
68.s1、基于kerberos实现接入大数据集群的用户的身份认证;
69.s2、基于hadoop集群中的ranger组件实现用户和资源的统一管理;
70.s3、用户管理模块将系统用户同步到ranger,同时为用户创建kerberos账号;
71.s4、在空间管理模块,管理员创建包含hdfs、yarn、hive和hbase的多种资源,设置资源的配额大小(存储空间、cpu、内存),同时将资源归属到数据空间;
72.s5、空间管理模块对空间的创建以及将已经创建好的空间指定给任一用户使用。
73.实施例3:
74.本发明实施例还提供了一种电子设备,包括:存储器和处理器;
75.其中,存储器存储计算机执行指令;
76.处理器执行所述存储器存储的计算机执行指令,使得处理器执行本发明任一实施例中的实现用户和资源统一管控的大数据集群多租户方法。
77.处理器可以是中央处理单元(,cpu),还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通过处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
78.存储器可用于储存计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现电子设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个
功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器还可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,只能存储卡(smc),安全数字(sd)卡,闪存卡、至少一个磁盘存储期间、闪存器件、或其他易失性固态存储器件。
79.实施例4:
80.本发明实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的实现用户和资源统一管控的大数据集群多租户方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
81.在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
82.用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-rym、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
83.此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
84.此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
85.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。