arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

Cluster

Cluster is a set of nodes comprising of servers, brokers, controllers and minions.

Pinot cluster components

Pinot uses Apache Helixarrow-up-right for cluster management. Helix is a cluster management framework that manages replicated, partitioned resources in a distributed system. Helix uses Zookeeper to store cluster state and metadata.

hashtag
Cluster components

Helix divides nodes into logical components based on their responsibilities:

hashtag
Participant

The nodes that host distributed, partitioned resources

Pinot Servers are modeled as Participants. For more details about server nodes, see .

hashtag
Spectator

The nodes that observe the current state of each Participant and use that information to access the resources. Spectators are notified of state changes in the cluster (state of a participant, or that of a partition in a participant).

Pinot Brokers are modeled as Spectators. For more details about broker nodes, see .

hashtag
Controller

The node that observes and controls the Participant nodes. It is responsible for coordinating all transitions in the cluster and ensuring that state constraints are satisfied while maintaining cluster stability.

Pinot Controllers are modeled as Controllers. For more details about controller nodes, see .

hashtag
Logical view

Another way to visualize the cluster is a logical view, where:

  • A cluster contains

  • Tenants contain

  • Tables contain .

hashtag
Setup a Pinot Cluster

Typically, there is only one cluster per environment/data center. There is no need to create multiple Pinot clusters since Pinot supports the concept of . At LinkedIn, the largest Pinot cluster consists of 1000+ nodes.

To set up a cluster, see one of the following guides:

Server
Broker
Controller
tenants
tables
segments
tenants
Running Pinot in Docker
Running Pinot locally