Yash Lohade
09/25/2025, 12:42 PMdocker-compose.yaml below for context. Any pointers would be really helpful 🙏
version: '3.7'
services:
pinot-zookeeper:
image: ${ZK_IMAGE zookeeper3.9.2}
container_name: "pinot-zookeeper"
restart: unless-stopped
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
networks:
- aquaduct-pinot-network
healthcheck:
test: ["CMD", "zkServer.sh", "status"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
volumes:
- zookeeper-data:/data
- zookeeper-datalog:/datalog
pinot-controller:
image: ${PINOT_IMAGE apachepinot/pinot1.2.0}
command: "StartController -zkAddress pinot-zookeeper:2181"
container_name: "pinot-controller"
hostname: pinot-controller
restart: unless-stopped
ports:
- "9000:9000"
environment:
JAVA_OPTS: "-Dplugins.dir=/opt/pinot/plugins -Xms20G -Xmx40G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-controller.log -Dpinot.controller.instance.auto.cleanup=true -Dpinot.controller.instance.cleanup.interval.seconds=300 -Dhelix.instance.auto.cleanup=true -Dhelix.instance.max.offline.time.before.cleanup=PT10M -Dpinot.hostname=pinot-controller"
depends_on:
pinot-zookeeper:
condition: service_healthy
networks:
- aquaduct-pinot-network
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:9000/health || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
volumes:
- controller-data:/tmp/data/PinotController
pinot-broker-1:
image: ${PINOT_IMAGE apachepinot/pinot1.2.0}
command: "StartBroker -zkAddress pinot-zookeeper:2181"
container_name: "pinot-broker-1"
hostname: pinot-broker-1
restart: unless-stopped
ports:
- "8099:8099"
environment:
JAVA_OPTS: "-Dplugins.dir=/opt/pinot/plugins -Xms45G -Xmx45G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-broker.log -Dpinot.hostname=pinot-broker-1"
depends_on:
pinot-controller:
condition: service_healthy
networks:
- aquaduct-pinot-network
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8099/health || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
volumes:
- broker-1-data:/var/pinot/broker/data
pinot-server-1:
image: ${PINOT_IMAGE apachepinot/pinot1.2.0}
command: "StartServer -zkAddress pinot-zookeeper:2181"
container_name: "pinot-server-1"
hostname: pinot-server-1
restart: unless-stopped
ports:
- "8098:8098"
environment:
JAVA_OPTS: "-Dplugins.dir=/opt/pinot/plugins -Xms45G -Xmx45G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-server.log -Dpinot.hostname=pinot-server-1"
depends_on:
pinot-broker-1:
condition: service_healthy
networks:
- aquaduct-pinot-network
healthcheck :
test: ["CMD-SHELL", "curl -f http://localhost:8097/health/readiness || exit 1"]
interval: 30s
timeout: 30s
retries: 5
start_period: 30s
volumes:
- server-1-data:/tmp/data/pinotSegments
networks:
aquaduct-pinot-network:
name: aquaduct-pinot-network
driver: bridge
volumes:
zookeeper-data:
zookeeper-datalog:
controller-data:
broker-1-data:
server-1-data:Mayank
Shounak Kulkarni
09/26/2025, 5:29 AM<http://pinot.set.instance.id.to|pinot.set.instance.id.to>.hostname=true (ref) to avoid the ip based instance names which leds to dead instances and new instance popping up eveytime the container restarts (why are they restarting is answered by Mayan above) and gets new ip.
To fix the I can't delete these dead instances because they still exist in the *ideal state* for some tables issue you need to untag all dead instances and perform table rebalance so that current live instance gets assigned all the segments, if re-ingestion is easier I would suggest tearing down and recreating the setup to get rid of all dangling instances.Yash Lohade
09/26/2025, 10:32 AM