本平台在部署后,需要进行一系列的初始化操作后,平台用户才能使用本平台的功能,本文会从平台管理者(对应本平台的“平台管理员”角色)、项目管理者(对应本平台项目下的“项目负责人”角色)、普通用户(对应项目下的普通账号)等3种不同的用户,来说明分别需要如何使用本平台。

项目组、项目、集群概念说明

在介绍平台使用之前,先说明几个概念:项目组、项目、集群。

项目组: 项目组是本平台构建用户进行数据处理的活动空间的一个概念,指本平台使用的一个隔离单元。对标一个企业的事业部,我们的大部分客户,一般都只有1个项目组,通常都是采购方的数据团队来负责。如果是一个平台下需要有开发、测试环境,则也可以有2个项目组。

项目: 项目是本平台用户进行数据处理的一个更小的活动空间,一个项目属于一个项目组。比如,一个事业部中会有数据开发工程师、数据分析师、算法工程师等团队,则每个团队可以使用独立的项目。

如下图,为常见的一种配置平台项目组和项目的一种形态。

集群:集群是平台资源的一个集合,针对底座为NDH的场景下,一个集群会对应HadoopMetaStore、HDFS、Yarn、Azkaban等组件。平台上的项目,在申请创建时,都需要申请集群下的资源。一般来说,平台部署完成后,平台都会部署好集群。

如下图,为项目组、项目、集群的关系说明:

用户在本平台上创建项目和项目组时,需要首先进行评估,确定需要设置哪些项目组,每个项目组下有多少个项目,以及这些项目组和项目,分别有哪些团队的人员管理。

这里,补充一些项目和项目组在隔离型上的差异说明:

1)在项目粒度下,可以独立管理项目下的库表权限、成员、角色、存储和计算资源等,支持讲库表授权给其它项目使用(指对接了权限的数据底座,比如NDH);

2)在项目组粒度下,可以管理所有项目共享的数据源(比如MySQL、Oracle数据源等)、参数组、资源组、UDF等公共资源。

因此,在规划平台项目组和项目时,可以从实际使用的团队的角度出发,确定这些团队是否有很强的隔离特性。比如,这些团队属于一个大的数据leader,由一个团队负责业务系统数据的集成、开发、应用,存在兄弟部分的数据使用等,则建议一个项目组。再比如,这些团队会独立接管各自的业务系统的数据进行开发,和别的团队不太存在数据的互通和业务往来,则可以考虑创建多个项目组。

不同角色的使用入门

下面,先对平台不用角色需要进行的主要工作作简要说明,具体的操作步骤和截图,将在其它章节呈现。

平台管理员,需要整体负责平台的初始化,最核心的动作是负责管理平台用户、新建项目组、新建项目。

1)管理平台用户

平台初始化后,数据库中会预置一个账号和密码。对于使用本平台登录页面登录的客户,平台管理者可通过改账号和密码,登录平台的用户管理页面,手动添加自己的账号,并设置为平台管理员或账号管理员(权限说明参见前面章节),也可以添加团队其它的成员,设置为平台管理员、账号管理员、普通账号。比如,设置自己为平台管理员,添加某个资深架构师为账号管理员,并将团队内的成员账号添加为永久账号(即普通账号)。

2)新建项目组

完成成员管理后,需要基于团队规划,在项目组管理中,需要新建项目组,最主要是确定项目组的名称和负责人。项目组负责人,主要作用是在某些项目组粒度的权限控制时,有默认权限,并可为其它人员授权。

3)新建项目

新建项目时,以NDH底座的集群为例,主要是确定项目名称、归属项目组、项目负责人、申请资源的集群、存储配额、Hive库、Yarn队列、队列资源等。申请审批通过后,项目下基本的开发资源就已经具备。其中“项目负责人”一般是某个数据团队的负责人,或者团队内比较资深的人员。

项目负责人,可以通过在项目下新建角色、添加成员,通过授权功能权限(比如允许访问某些产品)、数据权限(比如可以在某个库下创建表、读写表等)、队列权限(比如授权yarn队列的使用权限),则用户就可以开展数据开发的相关活动。

普通用户,在获得项目负责人授权后,即可访问平台的相关产品,进行数据开发等工作。