我们按照ADMEMS方法论的理论指导,结合《Pandora数据工厂之多租户项目介绍》进行预架构阶段的架构分析过程实践,多租户功能介绍如下。
一、功能需求
采用“职责协作链”来梳理的如下关键功能
二、功能列表
三、关键性技术
1. 资源池
Hadoop资源池(pool),或者作业池。 每个pool里有一定量的资源(管理员配置),每个用户属于某个pool,其提交的作业可使用这个pool中的资源。资源的分配主要是依据CPU虚拟核数和内存量。
2. 公平调度
是一种赋予作业(job)资源的方法,它的目的是让所有的作业随着时间的推移,都能平均的获取等同的共享资源。当单独一个作业在运行时,它将使用整个集群。当有其它作业被提交上来时,系统会将任务(task)空闲时间片(slot)赋给这些新的作业,以使得每一个作业都大概获取到等量的CPU时间。
3、Kerberos
Kerberos可以将认证的密钥在集群部署时事先放到可靠的节点上。集群运行时,集群内的节点使用密钥得到认证。只有被认证过节点才能正常使用。企图冒充的节点由于没有事先得到的密钥信息,无法与集群内部的节点通信。
4、Sentry
Sentry是一个Hadoop的授权模块,为了对正确的用户和应用程序提供精确的访问级别,包括一个核心授权提供者和一个结合层。可以实现对hive、hbase细粒度级、基于角色的授权。
四、技术分析
目前大数据生态里,各框架已经实现的多租户的情况:
框架 | 现状 | 说明 |
Hadoop yarn | 计算资源(CPU和内存)已经具备多租户 |
|
hbase | 命名空间和表授权 |
|
hdfs | ACL控制和配额 |
|
hive | 库和表授权 |
|