Apache Helix简介

因工作兴趣,发现Pinot里集群资源管理框架是Helix,所以了解以下这个框架,同时将使用场景和简介翻译以下,也是学习的一个总结。

Apache HELIX

一个为partitionedreplicated分布式资源 而设计的 集群管理框架

What is HELIX

Apache Helix是一个通用的集群资源管理框架,它能被用作自动管理存在于集群节点上的分区的,有副本的分布式资源

Helix能够在结点down掉recovery后,集群扩容配置更新自动的重新分配资源

前言-What Is Cluster Management

要理解Helix,就首先要了解,Cluster Management集群管理。
一个分布式系统,通常会运行在多个节点上是因为:

  • scalability 伸缩性 (expansion)
  • fault tolerance 容错性 (auto-failover)
  • load balancing 负载军 (load-balance)

在集群中,每个结点扮演不同的角色。

  1. 存储提供 数据
  2. 生成消费 数据流
  3. etc…

一旦配置了Helix,Helix就扮演者分布式系统全局的大脑

它被设计为不能单独的做出决定,这事因为

需要全局的感知和协调:

  • 调度和维护task,比如 备份,垃圾回收,文件整合,索引重建。
  • 在集群里将数据或者资源重新分区
  • 当集群变更的时候,通知独立的系统这样的变更,以便保持一致。
  • 调节系统任务和变更

要加入这些功能,会使分布式系统代码变得特别复杂。Helix提供了已经抽象出一些common的集群管理任务,允许系统的构造者能通过声明状态模型来根据预期的行为来建模,让Helix来管理和协调。

Helix所能带来的好处就是,写很少的代码,一个鲁棒性,高可操作性的系统。

What does Helix provide?

  • 自动给集群中的结点分配资源分配分区
  • 结点失败检测恢复
  • 动态的添加资源
  • 动态添加结点
  • 可插拔的 分布式状态机管理资源的状态
  • 自动负载均衡转换限制
  • 可选的 针对用户自定义资源和分区的分配 实现了可插拔的rebalancing

Why Helix

在状态和改变上,将一个分布式系统作为带有约束的状态机有以下的好处:
+ 将资源管理从核心的系统功能中分离
+ 可以很快的将一个单节点系统转换成一个可操作的分布式系统。
+ 增加了简化性:系统组件不需要管理整个全局的资源。这种职责的划分使得build,debug和维护系统更加方便。

注:本文翻译自Helix首页
http://helix.apache.org/

原创文章,转载请注明:

转载自:OopsOutOfMemory盛利的Blog,作者: OopsOutOfMemory

本文链接地址:http://blog.csdn.net/oopsoom/article/details/47416575

注:本文基于署名-非商业性使用-禁止演绎 2.5 中国大陆(CC BY-NC-ND 2.5 CN)协议,欢迎转载、转发和评论,但是请保留本文作者署名和文章链接。如若需要用于商业目的或者与授权方面的协商,请联系我。

你可能感兴趣的:(helix)