Apache Pinot – це розподілене OLAP-сховище даних, що працює в режимі реального часу та призначене для виконання OLAP-запитів із низькою затримкою. Воно часто використовується в поєднанні з Apache Kafka для отримання та аналізу даних у реальному часі.
У цьому посібнику ми розглянемо кроки, необхідні для встановлення Apache Pinot у системі Linux. Ми розглянемо попередні умови, завантаження та вилучення програмного забезпечення, налаштування конфігурації та запуск служб.
Попередні умови
Перед встановленням Apache Pinot переконайтеся, що ваша система відповідає таким попереднім умовам:
- Для роботи Apache Pinot потрібен Java Development Kit (JDK) 8 або вище.
- Apache Pinot використовує Apache Zookeeper для керування кластером.
- Переконайтеся, що налаштування вашого брандмауера дозволяють використовувати необхідні порти для зв’язку Pinot і Zookeeper.
Крок 1: Встановлення Java в Linux
Якщо у вашій системі не встановлено Java, ви можете завантажити та встановити її з офіційного сайту Oracle.
У більшості дистрибутивів Linux ви можете використовувати менеджер пакетів для встановлення Java. Наприклад, у системах на базі Debian ви можете використовувати таку команду.
sudo apt-get install default-jdk
У системах на базі Red Hat можна використовувати таку команду.
sudo dnf install java-21-openjdk -y
Після завершення встановлення ви можете перевірити версію Java, виконавши таку команду.
java -version
Крок 2: Встановлення Zookeeper у Linux
Zookeeper необхідний Apache Pinot для управління кластером, тому встановіть його за допомогою наступної команди.
sudo apt install zookeeperd [On Debian-based Systems]
sudo dnf install zookeeperd [On RHEL-based Systems]
Після встановлення запустіть, увімкніть і перевірте стан служби Zookeeper.
sudo systemctl start zookeeper
sudo systemctl enable zookeeper
sudo systemctl status zookeeper
Крок 3: Встановлення Apache Pinot у Linux
Завантажте останню версію Apache Pinot з офіційного сайту Apache Pinot або скористайтеся наступною командою wget, щоб завантажити її безпосередньо.
wget https://downloads.apache.org/pinot/apache-pinot-1.1.0/apache-pinot-1.1.0-bin.tar.gz
Примітка: За необхідності замініть apache-pinot-1.1.0-bin.tar.gz на останню доступну версію.
Потім розпакуйте скачаний tarball у потрібне місце і налаштуйте змінні оточення для полегшення доступу до двійкових файлів Pinot у файлі .bashrc або .profile.
sudo tar -xvzf apache-pinot-1.1.0-bin.tar.gz -C /opt
echo 'export PINOT_HOME=/opt/apache-pinot-1.1.0-bin' >> ~/.bashrc
echo 'export PATH=$PINOT_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Крок 4: Запуск служб Apache Pinot
Apache Pinot складається з декількох компонентів, кожен з яких працює як окремий сервіс:
- Controller: Управляє кластером Pinot і обробляє створення схем і таблиць.
- Broker: Займається маршрутизацією запитів.
- Server (сервер): Зберігає та обслуговує дані.
- Minion: Виконує фонові завдання, такі як ущільнення і згортання даних.
Запустіть кожну службу в окремих вікнах терміналу або як фоновий процес:
Запустіть контролер:
cd $PINOT_HOME
bin/pinot-admin.sh StartController -configFileName conf/pinot-controller.conf
Запустіть брокер:
cd $PINOT_HOME
bin/pinot-admin.sh StartBroker -configFilePath conf/pinot-broker.conf
Запустіть сервер:
cd $PINOT_HOME
bin/pinot-admin.sh StartServer -configFilePath conf/pinot-server.conf
Запустіть міньйона:
cd $PINOT_HOME
bin/pinot-admin.sh StartMinion -configFilePath conf/pinot-minion.conf
Переконайтеся, що всі служби запущені, перевіривши відповідні журнали в каталозі журналів у PINOT_HOME.
Крок 5: Налаштування Apache Pinot
Щоб почати отримувати і запитувати дані, Apache Pinot необхідно налаштувати схему і таблиці.
Створіть каталог для зберігання файлів конфігурації:
sudo mkdir $PINOT_HOME/configs
Створіть файл схеми, наприклад my_schema.json, у каталозі configs.
sudo nano $PINOT_HOME/configs/my_schema.json
Додайте таку конфігурацію схеми.
{
"schemaName": "mySchema",
"dimensionFieldSpecs": [
{
"name": "myDimension",
"dataType": "STRING"
}
],
"metricFieldSpecs": [
{
"name": "myMetric",
"dataType": "LONG"
}
],
"dateTimeFieldSpecs": [
{
"name": "myDateTime",
"dataType": "LONG",
"format": "1:MILLISECONDS:EPOCH",
"granularity": "1:MILLISECONDS"
}
]
}
Потім створіть файл конфігурації таблиці, наприклад my_table.json, у каталозі configs.
sudo nano $PINOT_HOME/configs/my_table.json
Додайте таку конфігурацію таблиці.
{
"tableName": "myTable",
"tableType": "REALTIME",
"segmentsConfig": {
"timeColumnName": "myDateTime",
"schemaName": "mySchema",
"replication": "1"
},
"tableIndexConfig": {
"loadMode": "MMAP"
},
"tenants": {},
"tableRetentionConfig": {},
"ingestionConfig": {
"streamIngestionConfig": {
"type": "kafka",
"streamConfigMaps": {
"streamType": "kafka",
"stream.kafka.topic.name": "myKafkaTopic",
"stream.kafka.broker.list": "localhost:9092",
"stream.kafka.consumer.type": "simple",
"stream.kafka.consumer.prop.auto.offset.reset": "smallest",
"realtime.segment.flush.threshold.size": "50000"
}
}
},
"metadata": {}
}
Тепер скористайтеся інструментом адміністратора Pinot, щоб додати конфігурації схеми і таблиць:
bin/pinot-admin.sh AddSchema -schemaFile $PINOT_HOME/configs/my_schema.json -exec
bin/pinot-admin.sh AddTable -tableConfigFile $PINOT_HOME/configs/my_table.json -exec
Крок 6: Перевірка налаштування Apache Pinot
Відкрийте веб-браузер і перейдіть до користувацького інтерфейсу контролера Pinot, щоб переконатися, що вашу схему і таблицю було успішно додано.
http://localhost:9000
Ви можете запитувати дані за допомогою консолі Pinot Query Console, доступної в користувацькому інтерфейсі контролера, або за допомогою інструменту командного рядка Pinot query:
bin/pinot-admin.sh Query -brokerHost localhost -brokerPort 8099 -query "SELECT * FROM myTable LIMIT 10"
Висновок
Встановлення Apache Pinot у системі Linux включає кілька етапів, зокрема встановлення Java і Zookeeper, завантаження і витяг двійкових файлів Pinot, запуск служб Pinot, а також налаштування схеми і таблиць.
Дотримуючись цієї інструкції, ви повинні отримати працюючий екземпляр Apache Pinot, готовий до обробки OLAP-запитів у реальному часі. Для подальшого налаштування та оптимізації зверніться до офіційної документації Apache Pinot.