آموزش نصب و پیکربندی Apache Pinot در لینوکس

موضوعاتی که در این مقاله به آنها پرداخته خواهد شد، به شرح زیر است:

Apache Pinot یک پایگاه‌داده توزیع‌شده بلادرنگ برای پردازش تحلیلی برخط (OLAP) است که به منظور پاسخ‌گویی به پرسش‌های OLAP با تأخیر پایین طراحی شده است. این سامانه اغلب همراه با Apache Kafka برای دریافت و تحلیل بلادرنگ داده‌ها به کار می‌رود.

این راهنما مراحل نصب Apache Pinot بر روی یک سیستم عامل لینوکس را به شما آموزش خواهد داد. ما به بررسی پیش‌نیازها، دانلود و استخراج نرم‌افزار، پیکربندی تنظیمات، و راه‌اندازی سرویس‌ها خواهیم پرداخت.

پیش‌نیازها:

پیش از نصب Apache Pinot، اطمینان حاصل کنید که سیستم شما شرایط زیر را دارا باشد:

  • Apache Pinot برای اجرا به Java Development Kit (JDK) نسخه ۸ یا بالاتر نیاز دارد.
  • Apache Pinot از Apache Zookeeper برای مدیریت خوشه استفاده می‌کند.
  • اطمینان حاصل کنید که تنظیمات فایروال شما، پورت های لازم برای برقراری ارتباط بین Pinot و Zookeeper را مجاز می‌سازد.

مرحله ۱: نصب Java در لینوکس

اگر جاوا روی سیستم شما نصب نشده است، می توانید آن را از وب سایت رسمی اوراکل دانلود و نصب کنید.

برای اکثر توزیع های لینوکس، می توانید از مدیر بسته برای نصب Java (جاوا) استفاده کنید. به عنوان مثال، روی سیستم های مبتنی بر دبیان، می توانید از دستور زیر استفاده کنید.

sudo apt-get install default-jdk 

پ.ن
آیا نیاز به سرور مجازی ایران دارید؟ لطفا بر روی لینک اون کلیک کنید! اگر نیاز به وی پی اس ایران با آی پی تمیز و بدون محدودیت دارید کلیک کنید.
 
در سیستم های مبتنی بر رد هت، می توانید از دستور زیر استفاده کنید.

sudo dnf install java-21-openjdk -y 

پس از اتمام نصب Java، می‌توانید با اجرای دستور زیر نسخه جاوا را تایید کنید.

java -version 
نسخه جاوا را در لینوکس بررسی کنید

مرحله 2: نصب زوکیپر (Zookeeper) در لینوکس

زوکیپر برای مدیریت خوشه توسط آپاچی پینوت ضروری است، بنابراین آن را با استفاده از دستور زیر نصب کنید.

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
نصب زوکیپر را در لینوکس بررسی کنید.

مرحله ۳: نصب Apache Pinot در لینوکس

آخرین نسخه آپاچی پینوت را از وب سایت رسمی آپاچی پینوت دانلود کنید یا برای دانلود مستقیم از دستور wget زیر استفاده کنید.

wget https://downloads.apache.org/pinot/apache-pinot-1.1.0/apache-pinot-1.1.0-bin.tar.gz 

در مرحله بعد، فایل tarball دانلود شده را در یک مکان دلخواه استخراج کنید و متغیرهای محیطی را برای دسترسی راحت‌تر به فایل‌های باینری پینوت در فایل.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

مرحله ۴: راه‌اندازی سرویس‌های آپاچی پینوت

آپاچی پینوت از چندین جزء تشکیل شده است که هر کدام به عنوان یک سرویس جداگانه در حال اجرا هستند و اینها عبارتند از:

  • Controller:مدیریت خوشه Pinout را بر عهده دارد و وظیفه ایجاد (Schema) و جدول‌ها را انجام می‌دهد.
  • Broker: مسئول مسیریابی درخواست‌ها (Query Routing) است.
  • Server: داده‌ها را ذخیره کرده و برای درخواست‌ها (Queries) ارائه می‌دهد.
  • Minion: وظایف پس‌زمینه‌ای مانند فشرده سازی داده ها و خلاصه سازی (Roll-up) داده‌ها را انجام می‌دهد.

هر سرویس را در یک پنجره ترمینال جداگانه یا به عنوان یک فرایند پس‌زمینه اجرا کنید.

کنترلر را با استفاده از دستور زیر راه‌اندازی کنید:

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.

مرحله ۵: پیکربندی Apache Pinot

Apache Pinot برای شروع فرایند دریافت و پرس‌وجو از داده‌ها، نیازمند یک طرحواره (schema) و پیکربندی جدول است. یک دایرکتوری برای ذخیره فایل‌های پیکربندی خود ایجاد کنید.

sudo mkdir $PINOT_HOME/configs 

یک فایل Schema، به‌عنوان مثال my_schema.json، در دایرکتوری پیکربندی ایجاد کنید:

sudo nano $PINOT_HOME/configs/my_schema.json 

برای اضافه کردن پیکربندی Schema، فایل 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 در دایرکتوری پیکربندی ایجاد کنید:

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 برای افزودن پیکربندی‌های Schema و جدول استفاده کنید:

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

مرحله ۶: بررسی راه اندازی Apache Pinot

یک مرورگر وب را باز کرده و به رابط کاربری کنترلر Pinot بروید تا بررسی کنید که Schema و جدول شما به درستی اضافه شده‌اند.

http://localhost:9000

اجرای Apache Pinot در لینوکس

می‌توانید داده‌ها را با استفاده از رابط کاربری جستجو (Query Console) موجود در UI کنترلر Pinot یا با استفاده از ابزار خط فرمان جستجوی Pinot جستجو کنید:

bin/pinot-admin.sh Query -brokerHost localhost -brokerPort 8099 -query "SELECT * FROM myTable LIMIT 10" 
نتیجه گیری:

نصب Apache Pinot بر روی یک سیستم لینوکس شامل مراحل مختلفی است، از جمله نصب Java و Zookeeper، دانلود و استخراج باینری‌های Pinot، راه‌اندازی سرویس‌های Pinot، و پیکربندی Schema و جدول‌ها.

با دنبال کردن این راهنما، باید یک نمونه در حال اجرای Apache Pinot داشته باشید که آماده پاسخگویی به پرس‌وجوهای OLAP بلادرنگ است. برای سفارشی‌سازی و بهینه‌سازی‌های بیشتر، به مستندات رسمی Apache Pinot مراجعه کنید.

مطالب مرتبط: