- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HADOOP平台下的多租户架构实现
一、背景:
伴随着移动数据量的不断增长,在通讯行业引入大数据技术势在必行,目前安徽省移动数据增长量为20T每天,预计在4G普遍使用后,数据增长量能达到每天30T,需要的数据存储将达到30-50PB。针对如此大的数据量以及相对复杂的应用场景需求,采用Hadoop数据仓储是最优选择。
根据大数据处理理论,集群节点数越多,集群规模越大,集群的数据处理能力越强;因此,理想状态是只建立一个大的Hadoop集群,承载所有适用于Hadoop集群的业务,不仅可以提升集群处理能力,而且可以减少数据冗余,节约存储成本。但是如果将多业务应用统一部署在一个集群上,即实现Hadoop集群的多租户模式,则容易出现数据和集群资源管理混乱无序的情况,安徽公司针对这种多部门共用一个集群的情况,通过建立统一调度平台,实现了数据统一化管理,任务合理化调度,集群资源按需分配。
二、模块介绍:
Hadoop统一调度平台,从功能上可以分为三个模块,分为数据管理模块、任务调度模块和资源分配模块,下面分别详细介绍一下这三个不同模块的作用:
数据管理模块
在多租户模式下,数据的安全性是最重要的问题,集群需要将不同用户的数据统一管理运维,对不同用户的数据进行权限隔离,这里的用户即是指使用Hadoop集群的公司内不同部室或项目团队。由于在Hadoop集群中,数据以文件形式,按照特定规则存放在HDFS的不同目录下,所以数据管理模块最重要的是制定并严格遵守Hadoop集群数据存放管理规则,将不同类型数据分别放入规定的目录下存放。Hadoop可以对不同目录给不同用户赋予不同的权限,从而实现对数据的统一管理。
第一级目录为用户级,不同用户拥有自己的私有目录,每个用户没有访问其他用户目录的权限,同时设置有公共目录,集群用户有访问公共目录的权限。第二、三级目录可以分别按照数据类型和时间对数据进行划分,保证数据存放规范。
为了保证对各用户的独立数据资源池数据量的可控,需要对其设置数据存储的上限;而HDFS无法直接设置某目录下文件系统大小的阀值,需要通过监控手段增加相应告警机制,一旦用户独立数据资源池大小即将达到阀值,提醒集群维护人员与相应用户联系清减资源池。
任务调度模块
Hadoop集群中,任务执行本身不存在优先级的概念,任务执行采用先进先出的策略。但是每个任务由于对应的业务不同存在优先级的高低,而Hadoop集群中任务执行时间有可能会很久,这样会出现长任务影响其他任务运行,特别是优先级更高的任务运行,所以需要对Hadoop集群的任务执行进行调度。
首先通过对每个任务运行时间进行监控,搜寻到运行时间较长的任务,再通过任务调度模块将优先级低占用集群资源大的长任务中止,保证优先级高的任务顺利执行,最后对该长任务进行分析,判断该任务是由于并发量大,算法较复杂造成,还是由于该任务算法存在问题导致,如果是前者,待集群闲时再执行该任务,如果是后者,则与开发人员联系优化算法。
集群资源分配模块
在Hadoop2.0以后,使用Yarn架构取代了1.0的Mapreduce架构,Yarn通过ResourceManager将集群资源在不同任务队列间进行分配,通过对不同任务队列分配不同的集群资源,最终实现对不同优先级任务的差异化管理。
对于Yarn中的一个任务队列(Query),有几个可以设置的参数,分别是MIN,MAX,权重值。其中MIN表示为该任务队列最少占有资源量,MAX表示为该任务队列最多占有资源量,权重值表示为各任务队列获得集群资源的比例。
举一个例子,假如某集群有3个任务队列,分别为队列A、队列B和队列C,系统可分配内存资源总共为420GB,首先调整各队列参数为:
队列名最小内存(GB)最大内存(GB)权重值A504203B1004202C2704201情景1
情况1下,队列A、B、C获取的集群内存资源分别为50GB、100GB、270GB。(按照MIN原则分配)。这时如果出现A任务队列空闲,则集群会将分配到任务队列A的内存资源按照权重值规则分配给任务队列B和C,任务队列B和C的权重值分别为2和1,则如果单纯按权重值来分配内存资源的话,任务队列B、C获得的内存资源分别为280GB和140GB,加上MIN参数的制约,最终B、C任务队列获取的内存资源为150GB、270GB。如果A任务队列重新启任务,则系统会重新将集群内存资源分配调整为队列A50GB,队列B100GB,队列C270GB。
将各队列参数动态调整为:
队列名最小内存(GB)最大内存(GB)权重值A504203B504202C504201情景2
情景2下,由于集群资源在满足各任务队列最小内存需求后还有多余资源,则集群会按照任务队列不
文档评论(0)