写在前面

本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见100个问题搞定大数据理论体系

解答

多租户技术(Muli-Tenancy Technology)又称多重租赁技术,用于实现如何在多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。

补充

传统数据库解决方案

独立数据库

一个租户一个数据库。

数据隔离级别最高、安全性最好、实现也比较简单, 就是部署起来可能比较麻烦,成本也高。

共享数据库

多个或所有租户共享数据库,但一个租户一个Schema。

优点

逻辑数据隔离,隔离级别还行,安装成本较低。

缺点

  1. 数据恢复困难
  2. 跨租户统计数据困难

共享数据库,共享数据架构

租户共享同一个Database、同一个Schema,在表中通过租户ID区分不同租户的数据。

这是共享程度最高、隔离级别最低的模式。

如果希望以最少的服务器为最多的租户提供服务,并且租户接受以牺牲隔离级别换取降低成本,那么这种方案最合适。

优点

  1. 维护和购置成本最低

  2. 每个数据库下支持的租户数量最多

缺点

  1. 隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量;
  2. 数据备份和恢复最困难,需要逐表逐条备份和还原。

大数据场景解决方案

在大数据技术里面,实现多租户会有多种部署模式。

与传统数据库不同的是,在大数据场景下, 客户通常希望不同租户之间的数据可以共享,但计算资源可以相互隔离而互不影响。

例如,一家企业有两个租户,一个租户做ETL计算,另一个租户做一些基础的分析。

为了实现多租户,会有多种不同的部署方式。

方案1

ETL和基础分析合并部署为ー个Hadoop集群,并为数据处理和数据分析分别设置不同的租户,通过对两类租户设置不同的资源上限,实现资源隔离,做到互不影响。

优点

  1. 这是较常规的部署方式,案例很多,比较稳定。
  2. 部署简单,维护简单,通过YARN进行资源隔离简单、方便。
  3. 修改资源的配额简单。
  4. 集群的扩容简单,并且不需要更改资源配额。
  5. 资源利用率高,所有计算均可以利用所有节点的计算资源。

缺点

  1. 共用YARN,如果YARN崩溃,则ETL和Hadoop的计算都将崩溃。
  2. YARN的隔离是逻辑隔离,不如物理隔离更彻底。

方案2

ETL和基础分析共享一个HDFS,控制计算资源的YARN部署为两个,分别为数据处理和数据分析服务,做到计算存储资源的共享和计算资源的物理隔离。

同时通过Hadoop的机架感知能力,保证三个副本的数据至少在ETL和基础分析计算集群所在的节点上各有一个副本,达到计算的本地化。

优点

计算资源物理隔离,两个YARN没有任何影响,一个崩溃不会影响另一个。

缺点

  1. 这种方案部署复杂、维护复杂,相当于维护两个集群修改配额等于重新配置YARN集群。
  2. 系统扩容后,两个计算集群均需要重新配置。
  3. 计算资源利用率低,可能出现一个计算集群繁忙、另一个计算集群闲置的情况。
  4. 让三个副本保证两个计算集群所在的节点各有一个,目前的社区版本无此方案,只能通过将两个集群设置为两个逻辑机架的方式实现。但是这样部署很可能会出现大量的三个副本分别部署在不同机架上的情况,影响整个HDFS集群的性能。
  5. 如果HDFS集群崩溃,则仍然会导致整个系统崩溃。

方案3

ETL和基础分析合并部署为一个Hadoop集群,并为数据处理和数据分析分别设置不同的Hive、Spark等组件实例。

实例可以指定具体部署的物理机或者容器,通过实例做到物理隔离;在YARN之上的计算资源完全隔离,做到互不影响。

方案3是方案1的升级版本,相比方案1有更好的隔离性。

总结

三种方案都有优缺点,第三种方案相对来说更折中一些。在实际应用中,需要根据不同的场景采用合适的方案。

上一篇 下一篇