This procedure describes how to install and configure the Apache Pinot component for use with the meshIQ Platform.
For Pinot 1.5.1, Java 25 is required, and Pinot should be installed on a separate VM with at least 48 GB of memory.
Before installing Pinot, ensure that both ZooKeeper and Kafka services are running, as they are required by Pinot.
- Recommended to download the Pinot component
pinot 1.5.1.tar.gzfrom https://pinot.apache.org/download/ and place the file in$APIN_HOME/pinot.
or
Use the Pinot setup provided with the Deployment Pack.
- Navigate to the Pinot directory located at
$APIN_HOME/pinot. -
Extract the downloaded Pinot package using the following command:
tar -zxvf pinot-1.5.1.tar.gz
- A new Pinot installation directory (pinot-xxx) is created. This directory will be used as the active pinot version.
- Open the extracted directory and edit the properties located in the
$APIN_HOME/pinot/pinot-xxx/conf/ - Add or verify the following properties:
Click here to view Pinot Controller configuration settings
// // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. // # Pinot Role pinot.service.role=CONTROLLER # Pinot Cluster name #pinot.cluster.name=pinot-quickstart pinot.cluster.name=PinotCluster pinot.controller.helixClusterName=PinotCluster # Pinot Zookeeper Server pinot.zk.server=localhost:2181 # Use hostname as Pinot Instance ID other than IP pinot.set.instance.id.to.hostname=true # Pinot Controller Port controller.port=9000 # Pinot Controller VIP Host controller.vip.host=localhost # Pinot Controller VIP Port controller.vip.port=9000 # Location to store Pinot Segments pushed from clients controller.data.dir=/opt/meshiq/base/pinot/current/data/controller #added: controller.deleted.segments.retentionInDays=1
controller.startup.exitOnTableConfigCheckFailure=false
controller.startup.exitOnSchemaCheckFailure=falseClick here to view Pinot Server configuration settings
// // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. // # Pinot Role pinot.service.role=SERVER # Pinot Cluster name #pinot.cluster.name=pinot-quickstart pinot.cluster.name=PinotCluster pinot.server.helixClusterName=PinotCluster # Pinot Zookeeper Server pinot.zk.server=localhost:2181 # Use hostname as Pinot Instance ID other than IP pinot.set.instance.id.to.hostname=true # Pinot Server Netty Port for queris pinot.server.netty.port=8098 # Pinot Server Admin API port pinot.server.adminapi.port=8097 # Pinot Server Data Directory pinot.server.instance.dataDir=../data/server/index # Pinot Server Temporary Segment Tar Directory pinot.server.instance.segmentTarDir=../data/server/segmentTar
-
Click here to view Pinot Broker configuration settings
// // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. // # Pinot Role pinot.service.role=BROKER # Pinot Cluster name #pinot.cluster.name=pinot-quickstart pinot.cluster.name=PinotCluster pinot.broker.helixClusterName=PinotCluster # Pinot Zookeeper Server pinot.zk.server=localhost:2181 # Use hostname as Pinot Instance ID other than IP pinot.set.instance.id.to.hostname=true # Pinot Broker Query Port pinot.broker.client.queryPort=8099 # Pinot Routing table builder class pinot.broker.routing.table.builder.class=random
- After completing the Pinot installation and configuration, start the Pinot Controller, Server, and Broker components in the order described below.
Set the path PINOT_HOME before start commands
-
Run the following command to start the Pinot Controller:
nohup $PINOT_HOME/bin/pinot-admin.sh StartController -config $PINOT_HOME/conf/pinot-controller.conf >/dev/null 2>&1 &
-
Run the following command to start the Pinot Server:
nohup $PINOT_HOME/bin/pinot-admin.sh StartServer -config $PINOT_HOME/conf/pinot-server.conf >/dev/null 2>&1 &
-
Run the following command to start the Pinot Broker:
nohup $PINOT_HOME/bin/pinot-admin.sh StartBroker -config $PINOT_HOME/conf/pinot-broker.conf >/dev/null 2>&1 &