多租户管理
原因
全球化部署,资源共享
业务变化快,管控要求
数据量太大,技术要求

在cloudera EDH上部署多租户数据服务的大型金融机构列表
现状和集中的问题
目前问题集中在灵活部署管理、安全多租户问题、数据治理、数据探索等多个方面。客户的问题举例:
多个业务部门如何有效的共享一个数据中心和共享数据服务?
大数据及Hadoop环境下如何进行数据治理?
多租户和Hadoop-as-a-Services平台方面的整体架构演进路径是什么?
在科技上实现多个“区域中心”的背景下, 大数据集群的部署如何实现分布部署,集中管控?
对于数据探索和机器学习的需求,业务部门能否自主化建模和生产?
如何规划实时流服务的架构,实现实时数据的采集和分发?
大数据及Hadoop的容灾和备份需要做哪些整体考虑?
1.什么是多租户
从角度看“租户”

多租户定义
当两个或更多的住户居住在同一座建筑

优点
资源共享
集中化管理
规模经济
要求
安全/隔离
资源分配
归属
多租户管理推荐架构
租户是将用户从业务条线、垂直领域、应用归属等角度进行分类,用于资源成本摊分。
所有租户都在同一个集群内部
每个租户有一个或多个应用程序
每个应用程序对集群有具体的资源要求
终端用户分成三类:服务账号(集群守护进程)、个人账号、功能账号(运行应用程序)

多租户层次

场景:商务智能
多用户,单一应用,共享数据
可以有多个BI工具,但是一个平台(Impala,EDW)
主要关注的是数据安全和资源管理

场景:批量处理
多用户,少量框架,通用数据格式
工作负载相对单一,有限的计算框架
除了数据安全和资源管理,还关注数据通用性

场景:数据中心
多租户,多应用,多框架
最大化数据共享
混合负载
日常运维和升级难度较大

发现:混合应用和负载管理是困难的
在同一个集群上部署多个应用需要谨慎。
在升级前需要大量的测试
需要第三方软件对新的版本进行认证
对于快速发展的开源技术是一个很大的问题。
不同类型的负载带来挑战。
低延迟vs高吞吐
交互vs批量
并发读vs随时改
多租户架构建议
适合多租户场景
大量的共享数据
少量的应用/框架/第三方软件
大部分通用的工作负载
变化的负载
新建集群
关键应用
没有太多共享数据
应用负载大(~50个节点?)
安全和治理
租户安全
Microsoft AD继承
所有的用户和组信息通过AD管理
HDFS加密区
通过数据治理控制数据分享
数据管理员创建访问视图以及批准数据共享
审计日志和报告
2.如何实现多租户
如何实现多租户
安全管理
HDFS Information Architecture(IA)
认证
授权
升级
资源管理
静态资源池
动态资源池
资源使用报告
多层次的安全
多层级的身份认证(Cloudera Manager,Kerberos,AD,Hue)
管理平台,运维人员,客户端,BI工具
统一的授权访问控制(Apache Sentry)
在平台上提供统一的访问安全控制策略
数据保护(HDFS At-Rest Encryption,Navigator Encrypt,Nacigator KeyTrustee)
On-the-wine和at-rest数据保护,并内置有Key Managerment方案
全面的审计
不管以什么方式进行访问集群,都会得到审计
HDFS文件和文件夹权限
认证:Kerberos&LDAP

授权:HDFS permissions

认证和授权

认证和授权

安全集成

Sentry架构

Sentry HDFS集成
HDFS的权限自动根据SQL授权语句设置

数据保护
底层文件系统的数据保护(Navigator Encrypt,Navigator Keytrustee)
临时文件,缓存到本地的中间计算结果,配置文件以及元数据文件
HDFS文件的保护(HDFS Data-At-Rest Encryption,Navigator Keytrustee)
只能保护HDFS的文件或目录数据
网络传输的安全性(TCP over SSL)
基于SSL的节点间网络通信
静态资源池
硬性的资源隔离(hard fence)
例如:Yarn+Impala+HDFA
通过Linux cgroup(CPU+I/O)实现以及内存限制
不支持服务间资源共享
调整参数后需要重启服务

静态资源池管理配置

动态资源池
动态资源池管理,支持Yarn和Impala
命名的资源池+调度策略
资源分配基于权重
队列分配策略
ACL控制访问
SLA保证(pre-emption)

配置示例

集群资源使用报告(Metering&Chargeback)
“每一个租户使用了多少CPU 和Memory?”
“我设置了公平调度,每一个租户都被公平的分配资源了吗?”
“哪些租户在申请资源的时候等待时间最长?”
“哪些租户申请了最多的内存但是使用的却最少?”
“什么时候我需要扩容?”

HDFS使用报告

例子
组,用户接口(AD/LDAP)
权限接口(JDBC/Sentry Policy)
组资源接口(HDFS以及Yarn的接口)
资源监控接口(Yarn的restful API)

优化的数据治理及管理
被管理的元数据
类似于定义一个命名空间,然后确保所有的元数据都是有效的
能够让数据创建者及使用者在这个受保护的区域内存储业务相关的元数据

自助式的数据发现及分析

优化的数据治理及管理
展现所有重要的血缘关系细节
使用户业务能够自己证明相信数据的可靠性


Navigator Optimizer 提供Hadoop上的SQL主动优化

3.总结
实现多租户开放平台管理的技术能力要求
需要全面的平台规划、整合能力
需要精细化的安全管控能力
安全模型梳理和设计
用户身份认证
用户授权管理
需要合理高效的资源管控能力
静态资源池
动态资源池
HBase的配额管理
需要强大的数据元数据、溯源及审计能力
需要工具支持持续优化管理能力
同时,也需要业界认可的专家顾问团队指导
目标的梳理、规划方案的设计需要项目团队和专家顾问团队一起,配合密切共同完成。
需要咨询团队与项目团队精诚一致,团结协作,充分吸收客户与行业最佳实践,结合企业实际合理规划。
项目执行的各个阶段,如现状调研、规划设计、目标与路线图设计、交付评审等工作中,需要借助专家团队结合业界成功经验给出前瞻性的专家建议。





