HDFS NodeLabel特性

本文探讨HDFS NodeLabel特性,它允许通过标签对DataNode进行分组,实现类似YARN NodeLabel的资源隔离和充分利用。NodeLabel分为约束标签和分区标签,用于满足不同需求。设计要点包括限制节点标签数、持久化标签信息、提供管理工具等。目前此特性仍处于设计阶段,未来可能支持更复杂表达式和跨分区副本存放。
摘要由CSDN通过智能技术生成

前言


在集群规模日益增大的背景下,集群内运行的机器类型可能也会变得越来越多,可能一部分机器磁盘读写性能比较好,又可能说那部分机器网络情况较好,还有的是CPU计算资源比较好的机器.面对这么多机型的节点,我们当然不能”一视同仁”,否则对于这些机器来说,就是一种资源浪费.在Job运行的层面(在YARN层面)而言,已经可以支持通过打NodeLabel标签的形式,让application运行在指定nodeLabel的节点上,以此做到计算资源的充分利用以及任务运行的资源隔离.那么现在问题来了,在数据存储的层面(在HDFS层面)而言,是否也能支持这种NodeLabel的机制呢?本文探讨的主题就是HDFS NodeLabel特性,与YARN NodeLabel有一部分相似点.

HDFS NodeLabel综述


HDFS NodeLabel最早的提出是在HDFS-9411(HDFS NodeLabel support)上,适用的背景正如前言中所描述的.正如HDFS-9411所显示的,此功能特性还尚且处于原型设计阶段,还并未进行实质的开发.但是尽管如此,此功能特性依然是一个很棒的特性,这也是为什么我会专门写一篇文章来介绍它的原因.Ok,扯得有点远了,重新回到正题,在YARN NodeLabel中,打标签的对象是nodemanager,用户通过给application打对应的标签,从而使得application跑在对应nodelabel的nodemanager上.我们可以进行对比和联系,在HDFS NodeLabel中,打标签的对象将会是DataNode和待写入的文件/目录.然后对应nodelabel的文件最后存储到对应的DataNode.看到这里,稍微熟悉HDFS的人可能马上会提出一点意见:这不正是HDFS异构存储的StoragePolicy机制所干的事情吗?不错,在这点上,二者的确有着比较大的相似性,归结下来一句话:

HDFS NodeLabel包含了部分StorageType的功能特点,但是相比后者,它的功能并不仅限于此,它能支持更加复杂的分组.

在后面的设计细节中,大家将会感觉到其中的异同.

HDFS NodeLabel的设计


NodeLabel的类型


在HDFS-9411的最新的设计文档中,将NodeLabel分为了以下2大类型:

  • Constraint Label(约束标签):每个约束标签代表着一类的特性,比如高内存,高CPU资源等等.每个DataNode可以拥有多个不同的约束标签.
  • Partition Label(分区标签):分区标签的主要作用是将整个集群在逻辑上划分成多个分段,每个DataNode划分到其中一个Partition分段中.

对于第一种标签的使用场景,我们应该比较熟悉了,与HDFS的storageType的使用场景比较类似.这里我们来看看第二种标签的使用场景,比如我们有10台机器,其中node[1-5]被打上了Partition1的标签,而node[6-10]则被划分到了Partition2下.分段标签划分好之后,我们可以规定Partition1下的机器归属HBase使用,而Partition2下的则归属于Hive使用.这样的话,我们其实就做到了服务上的隔离.

NodeLabel要求实现点


以下是一些HDFS NodeLabel需要满足的要求点:

  • 每个节点所拥有的NodeLabel数需要有数量的限制,以此减轻NameNode的管理压力.
  • 每个NodeLabel需要被Admin管理员创建.
  • 可以有不打NodeLabel标签的节点存在.
  • 同个NodeLabel可以被
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值