热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

大数据平台多租户管理实现(理论篇)

        随着数据量的指数型增长,以及Hadoop生态系统的不断完善,越来越多的公司选择Hadoop作为数据仓库,并在大数据集群上架设了越来越多的相对复杂的应用场景需求。在公

        随着数据量的指数型增长,以及Hadoop生态系统的不断完善,越来越多的公司选择Hadoop作为数据仓库,并在大数据集群上架设了越来越多的相对复杂的应用场景需求。在公司内部,多用户业务应用架设在同一个Hadoop集群上,容易出现数据与集群资源混乱无序的状态,需要建立统一的调度平台实现数据统一管理、任务合理化调度,集群资源按需分配;

        从集群使用角度延申,Hadoop大数据平台多租户管理实现在以下几点实现:

《大数据平台多租户管理实现(理论篇)》

一、集群使用认证:

       不能随便某个用户就可以直接登录大数据平台,必须有一个开关,将大数据开发平台整体隔绝。目前绝大部分公司使用Kerberos组件进行认证管理。

       大致的做法为,大数据平台设置某公共堡垒机(大业务应用系统可以使用专用堡垒机),多租户登陆堡垒机后,通过Kerberos认证成功后,才能使用大数据平台,并且设置失效时间。Kerberos可以将认证的密钥在集群部署时事先放到可靠的节点上。集群运行时,集群内的节点使用密钥得到认证。只有被认证过节点才能正常使用。企图冒充的节点由于没有事先得到的密钥信息,无法与集群内部的节点通信。

二、数据库管理

       多租户模式下,数据安全是最重要的问题,集群需要将不同用户的数据统一管理运维,对不同的数据进行权限隔离。Hadoop集群数据存储主要依赖HDFS,主要从以下几个方面进行多租户下数据层的管理:

(1)首先内部应制定并严格遵守hadoop集群数据存放管理规则。

         示例一存放规则:第一级别目录:(公共资源、不同用户)

                                      第二级别目录:(数据类型)

                                      第三级别目录:(时间)

        规则的指定需要严加执行。

           同时为了保证对各用户独立数据资源量的可控,需要对其设置数据存储的上线(50%三级;75%二级;90%一级)可在集群监控中进行每日调度监控。

(2)目录权限控制:

       在数据资产价值日益凸显,以及数据安全日益重要的情况下,应严格控制数据获取权限,特别在某些金融行业,客户的隐私尤为重要。

        多租户下,hadoop生态系统有Ranger、Sentry两个组件。大致功能一样,可以对Hive、Hbase细粒度级、基于角色的授权。最近在搞ranger,ranger(HD出品)支持的组件相对较多。同时Cloudra公司在研发一种更好的权限控制组件。

(3)数据库使用权限控制:

       hadoop生态圈使用加多的数据库主要有HBase、Hive等,大致都支持多schema分离设置。可以通过数据库分区与存放目录权限结合起来控制数据访问。

三、资源管理

(1)资源隔离

      在操作系统层面服务层面YARN)都可以做资源隔离。

      (1.1)服务层面, Hadoop资源池(pool),或者作业池的分配主要依赖yarn组件(相对较多的计算引擎都支持yarn管理)。 每个pool里有一定量的资源(管理员配置),每个用户属于某个pool,其提交的作业可使用这个pool中的资源。资源的分配主要是依据CPU虚拟核数和内存量。另外个别组件有单独的多租户管理,但是在一个统一的大数据平台上,还是用yarn统计管理的好。

     (1.2)操作系统层Linux用CGROUPS做静态资源隔离。2006年 Google工程师在创建 CGROUPS这个特性的时候,本来的名字不是 CGROUPS,而是进程容器,这也是这个特性的本意,就是在 Linux内核级别创建一个容器的概念,使得这些进程只竞争容器内部的资源。容器内的应用不会收到容器外的应用对于操作系统资源,CPU、内存、网络 IO、句柄的侵占,运行出现问题。CGROUPS同时也是 Docker的底层技术,Docker在 CGROUPS的基础之上,实现了更加广泛和易用的接口,和建立的一个广泛的生态。个别公司的大数据平台已经实现Docker底层资源隔离(星环的TDH)

(2)资源调度

        在 Hadoop集群中 ,由于资源是有限的,多租户环境下会有很 多作业在同时运行,因此,资源的合理 分配和回收对多租户来讲相 当重要。多租户环境通常用到的是公平调度策略。因为这种高度既能让长时间运行的作业及时完成,也能并发的运行占用资源少的作业 。

        还是主要使用yarn的公平调度,这是一种赋予作业(job)资源的方法,它的目的是让所有的作业随着时间的推移,都能平均的获取等同的共享资源。当单独一个作业在运行时,它将使用整个集群。当有其它作业被提交上来时,系统会将任务(task)空闲时间片(slot)赋给这些新的作业,以使得每一个作业都大概获取到等量的CPU时间。

四、系统接入管理

外部用用系统应用工程全部部署在堡垒机专有用户下的目录中,同时只将部署在堡垒机上的应用作为后台处理使用。

        通过以上设置,一个大数据平台可以从三个视角实现多用户隔离:

        一是逻辑隔离。

        从租户的角度出发,每个租户都有自己独立的逻辑模型,拥有自己独立的资源以及基于相同的逻辑模型实现的统一授权模型。

        二是资源隔离。

        对于不同租户的任务,在集群运行时,能够实现统一的、全局最优的任务调度能力以及资源隔离能力。

        三是运行隔离机制。

        用户任务请求运行在yarn调度上,相互无影响,各进行隔离。

目前在工作中才开始使用ranger作为目录权限控制,后续待将以下整体实现下,然后将各个部署再总结下。好的总结是成功的开始,Good Luck。


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
qgone
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有