Use S3 and Pinot in Docker
Set up Pinot Cluster
In order to setup Pinot in Docker to use S3 as deep store, we need to put extra configs for Controller and Server.
Create a docker network
docker network create -d bridge pinot-demoStart Zookeeper
docker run \
--name zookeeper \
--restart always \
--network=pinot-demo \
-d zookeeper:3.5.6Prepare Pinot configuration files
Below sections will prepare 3 config files under /tmp/pinot-s3-docker to mount to the container.
/tmp/pinot-s3-docker/
controller.conf
server.conf
ingestionJobSpec.yamlStart Controller
Below is a sample controller.conf file.
Then start pinot controller with:
Start Broker
Broker is a simple one you can just start it with default:
Start Server
Below is a sample server.conf file
Then start pinot server with:
Set up Table
In this demo, we just use airlineStats table as an example which is already packaged inside the docker image.
You can also mount your table conf and schema files to the container and run it.
Set up Ingestion Jobs
Standalone Job
Below is a sample standalone ingestion job spec with certain notable changes:
jobType is SegmentCreationAndMetadataPush (this job will bypass controller download segment )
inputDirURI is set to a s3 location s3://my.bucket/batch/airlineStats/rawdata/
outputDirURI is set to a s3 location s3://my.bucket/output/airlineStats/segments
Add a new PinotFs under pinotFSSpecs
Sample ingestionJobSpec.yaml
Launch the data ingestion job:
Was this helpful?

