arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

Running Pinot in Docker

This quick start guide will show you how to run a Pinot cluster using Docker.

circle-info

Prerequisites

Install Dockerarrow-up-right

You can also try Kubernetes quick start if you already have a local minikubearrow-up-right cluster installed or Docker Kubernetesarrow-up-right setup.

Create an isolated bridge network in docker

We'll be using our docker image apachepinot/pinot:latest to run this quick start, which does the following:

  • Sets up the Pinot cluster

  • Creates a sample table and loads sample data

There are 3 types of quick start examples.

  • Batch example

  • Streaming example

  • Hybrid example

hashtag
Batch example

In this example we demonstrate how to do batch processing with Pinot.

  • Starts Pinot deployment by starting

    • Apache Zookeeper

    • Pinot Controller

Once the Docker container is running, you can view the logs by running the following command.

That's it! We've spun up a Pinot cluster.

circle-info

It may take a while for all the Pinot components to start and for the sample data to be loaded.

Use the below command to check the status in the container logs.

Your cluster is ready once you see the cluster setup completion messages and sample queries, as demonstrated below.

You can head over to to check out the data in the baseballStats table.

hashtag
Streaming example

In this example we demonstrate how to do stream processing with Pinot.

  • Starts Pinot deployment by starting

    • Apache Kafka

    • Apache Zookeeper

Once the cluster is up, you can head over to to check out the data in the meetupRSVPEvents table.

hashtag
Hybrid example

In this example we demonstrate how to do hybrid stream and batch processing with Pinot.

  1. Starts Pinot deployment by starting

    • Apache Kafka

    • Apache Zookeeper

Once the cluster is up, you can head over to to check out the data in the airlineStats table.

Pinot Broker

  • Pinot Server

  • Creates a demo table

    • baseballStats

  • Launches a standalone data ingestion job

    • Builds one Pinot segment for a given CSV data file for table baseballStats

    • Pushes the built segment to the Pinot controller

  • Issues sample queries to Pinot

  • Pinot Controller

  • Pinot Broker

  • Pinot Server

  • Creates a demo table

    • meetupRsvp

  • Launches a meetup **stream

  • Publishes data to a Kafka topic meetupRSVPEvents to be subscribed to by Pinot

  • Issues sample queries to Pinot

  • Pinot Controller

  • Pinot Broker

  • Pinot Server

  • Creates a demo table

    • airlineStats

  • Launches a standalone data ingestion job

    • Builds Pinot segments under a given directory of Avro files for table airlineStats

    • Pushes built segments to Pinot controller

  • Launches a **stream of flights stats

  • Publishes data to a Kafka topic airlineStatsEvents to be subscribed to by Pinot

  • Issues sample queries to Pinot

  • Exploring Pinot
    Exploring Pinot
    Exploring Pinot
    Cluster Setup Completion Example
    docker network create -d bridge pinot-demo
    docker run \
        --network=pinot-demo \
        --name pinot-quickstart \
        -p 9000:9000 \
        -d apachepinot/pinot:latest QuickStart \
        -type batch
    docker logs pinot-quickstart -f
    docker logs pinot-quickstart -f
    # stop previous container, if any, or use different network
    docker run \
        --network=pinot-demo \
        --name pinot-quickstart \
        -p 9000:9000 \
        -d apachepinot/pinot:latest QuickStart \
        -type stream
    # stop previous container, if any, or use different network
    docker run \
        --network=pinot-demo \
        --name pinot-quickstart \
        -p 9000:9000 \
        -d apachepinot/pinot:latest QuickStart \
        -type hybrid