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.