Presto ইনস্টলেশন প্রক্রিয়া কিছুটা জটিল হতে পারে, তবে একবার ইনস্টল হয়ে গেলে এটি বড় ডেটাসেট প্রসেসিং এবং বিশ্লেষণের জন্য অত্যন্ত কার্যকরী। নিচে Presto ইনস্টলেশন এবং কনফিগারেশনের ধাপগুলি দেওয়া হলো।
প্রাথমিক শর্তাবলী:
ধাপ ১: Java ইনস্টল করা
Presto চালানোর জন্য Java 8 বা তার পরবর্তী সংস্করণ ইনস্টল করা আবশ্যক। আপনি নিচের কমান্ড ব্যবহার করে Java ইনস্টল করতে পারেন:
sudo apt update
sudo apt install openjdk-8-jdk
java -version
ধাপ ২: Presto ডাউনলোড করা
Presto-এর সর্বশেষ ভার্সন ডাউনলোড করতে নিচের কমান্ড ব্যবহার করুন:
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/350/presto-server-350.tar.gz
tar -xvzf presto-server-350.tar.gz
mv presto-server-350 /opt/presto
ধাপ ৩: Presto কনফিগারেশন ফাইল তৈরি করা
Presto চালাতে দুটি কনফিগারেশন ফাইল তৈরি করতে হবে:
এই ফাইল দুটি /etc/presto/
ফোল্ডারে তৈরি করুন:
mkdir /etc/presto
touch /etc/presto/config.properties /etc/presto/node.properties
এখানে কিছু সাধারণ কনফিগারেশন:
config.properties:
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=5GB
query.max-memory-per-node=1GB
node.properties:
node.id=worker-1
http-server.http.port=8081
ধাপ ৪: Presto সার্ভিস শুরু করা
Presto ইনস্টল হয়ে গেলে, সার্ভিস চালাতে নিচের কমান্ড ব্যবহার করুন:
cd /opt/presto
bin/launcher start
Windows এ Presto ইনস্টল করার জন্য WSL (Windows Subsystem for Linux) ব্যবহার করা ভালো। WSL ইনস্টল হলে Linux-এর মতোই Presto ইনস্টল এবং কনফিগার করা যাবে।
WSL ইনস্টল করা:
wsl --install
MacOS এ Presto ইনস্টল করা বেশ সহজ। Homebrew ব্যবহার করে Presto ইনস্টল করা যায়:
ধাপ ১: Homebrew ইনস্টল করা
Homebrew যদি আপনার সিস্টেমে ইনস্টল না থাকে তবে এটি ইনস্টল করুন:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ধাপ ২: Presto ইনস্টল করা
Homebrew দিয়ে Presto ইনস্টল করতে:
brew install presto
ধাপ ৩: Presto কনফিগারেশন
MacOS-এও Linux এর মতোই কনফিগারেশন ফাইলগুলি /usr/local/etc/presto/
ফোল্ডারে রাখতে হবে। কনফিগারেশন ফাইল তৈরি এবং সেগুলির মান সামঞ্জস্য করুন।
Presto ক্লাস্টার সেটআপের জন্য কমপক্ষে একটি Coordinator নোড এবং এক বা একাধিক Worker নোড প্রয়োজন। Coordinator নোড কোয়েরি পরিচালনা এবং Worker নোড গুলি ডেটা প্রক্রিয়া করবে।
ধাপ ১: Coordinator সেটআপ
ধাপ ২: Worker নোড সেটআপ
coordinator=false
এবং http-server.http.port=8081
সেটিং যুক্ত করুন।ধাপ ৩: Cluster যোগ করা
http://<server-ip>:8080
এ গিয়ে Presto Web UI ব্যবহার করতে পারবেন।etc/catalog
ডিরেক্টরিতে।এই ধাপগুলির মাধ্যমে আপনি Presto সফলভাবে ইনস্টল এবং কনফিগার করতে পারবেন। Presto ক্লাস্টার পরিচালনা এবং কনফিগারেশন আরও উন্নত করার জন্য আপনি প্রতিটি Worker এবং Coordinator নোডের কার্যক্ষমতা পর্যবেক্ষণ করতে পারেন।
Presto একটি ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন, এবং এটি বিভিন্ন প্ল্যাটফর্মে ইনস্টল করা যেতে পারে। নিচে Linux, Windows, এবং MacOS এর জন্য ইনস্টলেশন প্রক্রিয়া বিস্তারিতভাবে ব্যাখ্যা করা হল।
Presto চালানোর জন্য Java 8 বা তার পরবর্তী সংস্করণ প্রয়োজন। Java ইনস্টল করতে, নিচের কমান্ডটি ব্যবহার করুন:
sudo apt update
sudo apt install openjdk-8-jdk
java -version
Presto ডাউনলোড করতে, প্রথমে Maven রিপোজিটরি থেকে ডাউনলোড করুন:
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/350/presto-server-350.tar.gz
tar -xvzf presto-server-350.tar.gz
sudo mv presto-server-350 /opt/presto
Presto চালানোর জন্য দুটি কনফিগারেশন ফাইল তৈরি করতে হবে:
config.properties
node.properties
এই ফাইল দুটি /etc/presto/
ফোল্ডারে তৈরি করুন:
sudo mkdir /etc/presto
sudo touch /etc/presto/config.properties /etc/presto/node.properties
config.properties:
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=5GB
query.max-memory-per-node=1GB
node.properties:
node.id=worker-1
http-server.http.port=8081
এখন Presto সার্ভার শুরু করুন:
cd /opt/presto
bin/launcher start
Presto চলতে থাকলে, ওয়েব ইন্টারফেসটি http://<server-ip>:8080
এ দেখতে পারবেন।
Windows এ Presto ইনস্টল করার জন্য WSL (Windows Subsystem for Linux) ব্যবহার করা ভাল, কারণ Presto Linux ভিত্তিক এবং WSL এ আপনি Linux-এর মতো প্রক্রিয়া অনুসরণ করতে পারবেন।
PowerShell (Admin) ওপেন করে নিচের কমান্ড রান করুন:
wsl --install
Ubuntu বা অন্য কোনো Linux ডিস্ট্রিবিউশন ইনস্টল করুন।
Linux ডিস্ট্রিবিউশন ইন্সটল করার পর, Linux কনফিগারেশন অনুসরণ করুন (Linux ইনস্টলেশনের মতো) এবং উপরের Linux ইনস্টলেশন অংশ অনুযায়ী Presto ইনস্টল করুন।
MacOS এ Presto ইনস্টল করার জন্য Homebrew ব্যবহার করা যেতে পারে, যা সহজ এবং দ্রুত।
Homebrew যদি আপনার MacOS-এ ইনস্টল না থাকে, তবে এটি ইনস্টল করুন:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrew দিয়ে Presto ইনস্টল করতে:
brew install presto
MacOS-এও Linux এর মতোই কনফিগারেশন ফাইল তৈরি এবং কনফিগার করতে হবে। /usr/local/etc/presto/
ফোল্ডারে কনফিগারেশন ফাইল রাখুন।
config.properties:
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=5GB
query.max-memory-per-node=1GB
node.properties:
node.id=worker-1
http-server.http.port=8081
Presto চালানোর জন্য:
cd /usr/local/opt/presto
bin/launcher start
এইভাবে, আপনি Linux, Windows (WSL), এবং MacOS-এ Presto ইনস্টল এবং কনফিগার করতে পারবেন। প্রতিটি সিস্টেমের জন্য কনফিগারেশন ফাইল সামঞ্জস্য করার মাধ্যমে Presto সফলভাবে চালানো যাবে এবং ওয়েব ইন্টারফেসের মাধ্যমে আপনি কোয়েরি পরিচালনা করতে পারবেন।
Presto একটি ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন, এবং এটি একাধিক নোডের মাধ্যমে কাজ করে, যা একটি Presto ক্লাস্টার গঠন করে। ক্লাস্টারটি মূলত দুটি ধরনের নোড নিয়ে গঠিত: Coordinator নোড এবং Worker নোড। Coordinator নোড কোয়েরি পরিকল্পনা করে এবং Worker নোডগুলিতে কাজ বিতরণ করে, যা ডেটা প্রক্রিয়া করে।
Presto ক্লাস্টার সেটআপের জন্য নিম্নলিখিত ধাপগুলো অনুসরণ করতে হবে:
Coordinator নোড হল Presto ক্লাস্টারের কেন্দ্রীয় উপাদান, যা কোয়েরি গ্রহণ এবং এক্সিকিউশন প্ল্যান তৈরি করে। এটি সবকিছুর নিয়ন্ত্রণ করে এবং কোয়েরি প্রক্রিয়াকরণের জন্য Worker নোডগুলিতে কাজ পাঠায়।
config.properties ফাইল:
config.properties ফাইলের উদাহরণ:
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=5GB
query.max-memory-per-node=1GB
node.properties ফাইল:
node.properties ফাইলের উদাহরণ:
node.id=coordinator-1
http-server.http.port=8080
Worker নোড গুলি কাজ প্রক্রিয়া করার জন্য দায়ী। এগুলি Coordinator নোডের নির্দেশনা অনুযায়ী কোয়েরি প্রক্রিয়া করে এবং ফলাফল ফেরত পাঠায়।
config.properties ফাইল:
config.properties ফাইলের উদাহরণ:
coordinator=false
http-server.http.port=8081
node.properties ফাইল:
node.properties ফাইলের উদাহরণ:
node.id=worker-1
http-server.http.port=8081
ক্লাস্টারে নতুন Worker নোড যোগ করার জন্য Coordinator নোডের সাথে Worker নোডের সংযোগ স্থাপন করতে হবে। Presto এর node.properties
ফাইলে নীচের কনফিগারেশনগুলো করতে হবে।
Worker নোডের node.properties ফাইলে coordinator.uri সেটিং যোগ করুন, যাতে Worker নোডটি Coordinator নোডের সাথে সংযুক্ত হতে পারে:
coordinator.uri=http://<coordinator-ip>:8080
Worker নোড সফলভাবে Coordinator নোডের সাথে সংযুক্ত হয়েছে কিনা, তা যাচাই করতে Presto ওয়েব UI-তে গিয়ে দেখতে পারেন। সাধারণভাবে, আপনি http://<coordinator-ip>:8080
এ গিয়ে সমস্ত সংযুক্ত নোডের তথ্য দেখতে পারবেন।
Cluster Management:
Cluster Expansion:
Monitor Cluster Health:
Presto Web UI-তে ক্লাস্টারের সমস্ত নোড, কোয়েরি, এবং কাজের অবস্থা মনিটর করা যায়। এটি http://<coordinator-ip>:8080
এ প্রবেশ করে অ্যাক্সেস করা যায়।
coordinator=true
সেটিং দিন।coordinator=false
সেটিং দিন।coordinator.uri
সেটিং দিয়ে।এই ধাপগুলো অনুসরণ করে আপনি Presto ক্লাস্টার সফলভাবে সেটআপ করতে পারবেন।
Presto এর শক্তিশালী Connector সিস্টেমের মাধ্যমে এটি বিভিন্ন ডেটাবেস এবং ডেটা সোর্সের সাথে সংযুক্ত হতে সক্ষম। এখানে আমরা তিনটি জনপ্রিয় ডেটাবেস, Hive, MySQL, এবং PostgreSQL এর সাথে Presto সংযোগ করার প্রক্রিয়া বিস্তারিতভাবে দেখবো।
Presto Hive এর সাথে সংযোগ স্থাপন করতে পারে এবং এটি Hadoop ডেটাসেটের উপর SQL কোয়েরি চালাতে সক্ষম।
Presto-তে Hive সংযোগ করতে হবে hive
ক্যাটালগ তৈরি করে। এই ক্যাটালগ ফাইলটি /etc/presto/catalog/
ডিরেক্টরিতে রাখতে হবে।
ফাইল নাম: hive.properties
connector.name=hive
hive.metastore.uri=thrift://<hive-metastore-host>:9083
এখানে hive.metastore.uri
এর মান হলো Hive মেটাস্টোরের URI। আপনি আপনার Hive মেটাস্টোরের ঠিকানা এখানে প্রদান করবেন।
Hive এর মেটাস্টোরের URI সঠিকভাবে কনফিগার করা থাকতে হবে যাতে Presto Hive ডেটাসেটগুলোতে অ্যাক্সেস করতে পারে। Hive মেটাস্টোর সার্ভিস চালু করতে নিচের কমান্ডটি ব্যবহার করুন:
hive --service metastore
এখন আপনি Presto CLI ব্যবহার করে Hive ডেটাবেসে কোয়েরি চালাতে পারেন। উদাহরণস্বরূপ:
SELECT * FROM hive.<schema_name>.<table_name>;
Presto-তে MySQL ডেটাবেস সংযোগ করার জন্য MySQL Connector কনফিগার করতে হবে।
Presto-তে MySQL সংযোগ করতে mysql
ক্যাটালগ তৈরি করতে হবে এবং এটি /etc/presto/catalog/
ডিরেক্টরিতে রাখতে হবে।
ফাইল নাম: mysql.properties
connector.name=mysql
connection-url=jdbc:mysql://<mysql-host>:3306/<database-name>
connection-user=<username>
connection-password=<password>
এখানে:
connection-url
: MySQL সার্ভারের URL।connection-user
: MySQL ব্যবহারকারীর নাম।connection-password
: MySQL ব্যবহারকারীর পাসওয়ার্ড।MySQL সংযোগ সফল হলে, আপনি Presto CLI থেকে MySQL ডেটাবেসে কোয়েরি চালাতে পারবেন। উদাহরণস্বরূপ:
SELECT * FROM mysql.<database_name>.<table_name>;
PostgreSQL ডেটাবেসের সাথে Presto সংযোগ করতে PostgreSQL Connector কনফিগার করতে হবে।
Presto-তে PostgreSQL সংযোগ করতে postgresql
ক্যাটালগ তৈরি করতে হবে এবং এটি /etc/presto/catalog/
ডিরেক্টরিতে রাখতে হবে।
ফাইল নাম: postgresql.properties
connector.name=postgresql
connection-url=jdbc:postgresql://<postgresql-host>:5432/<database-name>
connection-user=<username>
connection-password=<password>
এখানে:
connection-url
: PostgreSQL সার্ভারের URL।connection-user
: PostgreSQL ব্যবহারকারীর নাম।connection-password
: PostgreSQL ব্যবহারকারীর পাসওয়ার্ড।PostgreSQL ডেটাবেস সংযোগ সফল হলে, আপনি Presto CLI থেকে PostgreSQL ডেটাবেসে কোয়েরি চালাতে পারবেন। উদাহরণস্বরূপ:
SELECT * FROM postgresql.<database_name>.<table_name>;
এভাবেই আপনি Presto এর সাথে Hive, MySQL, এবং PostgreSQL ডেটাবেস সংযোগ করতে পারবেন এবং এই ডেটাবেস থেকে SQL কোয়েরি চালিয়ে ডেটা বিশ্লেষণ করতে পারবেন।
Presto এর কনফিগারেশন ফাইল দুটি গুরুত্বপূর্ণ ভূমিকা পালন করে:
এই কনফিগারেশন ফাইলগুলো Presto সার্ভারের কার্যকারিতা নির্ধারণ করে এবং বিভিন্ন সার্ভিসের মধ্যে পারফরম্যান্স, সিকিউরিটি এবং সংযোগের কনফিগারেশন সহজ করে তোলে।
config.properties ফাইলটি Presto সার্ভারের মূল কনফিগারেশন ফাইল। এটি Presto-এর কো-অর্ডিনেটর এবং ওয়ার্কার নোডের কার্যকারিতা এবং পারফরম্যান্স নিয়ন্ত্রণ করে। সাধারণত, এই ফাইলটি /etc/presto/
বা Presto ইনস্টলেশনের ডিরেক্টরিতে থাকে।
coordinator
এটি নির্দেশ করে Presto সার্ভার কো-অর্ডিনেটর হিসেবে কাজ করবে কি না। কো-অর্ডিনেটর ডেটা প্রসেসিংয়ের জন্য কাজ বরাদ্দ করে এবং কোয়েরি এক্সিকিউশন প্ল্যান তৈরি করে।
coordinator=true
node-scheduler.include-coordinator
এটি কো-অর্ডিনেটরকে ওয়ার্কার হিসেবে কাজ করতে সক্ষম করে তোলে। সাধারণত, কো-অর্ডিনেটর প্রধানভাবে কো-অর্ডিনেটিংয়ের কাজ করে, কিন্তু যদি এই সেটিংটি true
থাকে, তবে এটি কিছু কাজও করতে পারে।
node-scheduler.include-coordinator=true
http-server.http.port
Presto সার্ভারের HTTP পোর্ট নম্বর নির্ধারণ করে। সাধারণত, এটি 8080 পোর্টে চলে।
http-server.http.port=8080
query.max-memory
একটি কোয়েরি কতটা মেমরি ব্যবহার করতে পারবে তার সর্বোচ্চ সীমা নির্ধারণ করে।
query.max-memory=5GB
query.max-memory-per-node
প্রতিটি নোডে একটি কোয়েরি কতটা মেমরি ব্যবহার করতে পারবে তা নির্ধারণ করে।
query.max-memory-per-node=1GB
discovery.uri
এটি কো-অর্ডিনেটরের URI নির্ধারণ করে, যার মাধ্যমে Worker নোডগুলির সাথে যোগাযোগ করতে পারে।
discovery.uri=http://<coordinator-ip>:8080
http-server.http.enabled
Presto এর HTTP সার্ভিস চালু বা বন্ধ করার জন্য ব্যবহৃত হয়।
http-server.http.enabled=true
node.properties ফাইলটি Presto নোডের নির্দিষ্ট কনফিগারেশন ধারণ করে এবং এটি নির্ধারণ করে যে একটি নোড কো-অর্ডিনেটর হবে কিনা বা এটি শুধুমাত্র Worker নোড হিসেবে কাজ করবে।
node.id
এটি নোডের একটি অনন্য শনাক্তকারী। প্রতিটি Worker নোডের জন্য একটি আলাদা node.id
থাকতে হবে।
node.id=worker-1
http-server.http.port
প্রতিটি Worker নোডের HTTP পোর্ট নম্বর নির্ধারণ করে।
http-server.http.port=8081
coordinator
এটি নির্ধারণ করে যে এই নোডটি কো-অর্ডিনেটর নাকি Worker নোড হবে। যদি এটি true
থাকে, তবে এটি কো-অর্ডিনেটর হিসেবে কাজ করবে, এবং যদি false
থাকে তবে এটি Worker হিসেবে কাজ করবে।
coordinator=false
data-dir
এটি নোডের ডেটা সংরক্ষণ করার জন্য একটি ডিরেক্টরি নির্ধারণ করে।
data-dir=/var/presto/data
অংশ | config.properties | node.properties |
---|---|---|
ভূমিকা | সার্ভারের সাধারণ কনফিগারেশন (কো-অর্ডিনেটর, পোর্ট, মেমরি সীমা) | নোডের নির্দিষ্ট কনফিগারেশন (কো-অর্ডিনেটর/ওয়ার্কার, নোড আইডি) |
কনফিগারেশন ধরনের উদাহরণ | কো-অর্ডিনেটর, HTTP পোর্ট, মেমরি সীমা, ডিসকভারি URI | নোড আইডি, HTTP পোর্ট, নোডের ভূমিকা (কো-অর্ডিনেটর/ওয়ার্কার) |
স্থান | সাধারণত /etc/presto/ বা ইনস্টলেশনের মধ্যে থাকে | /etc/presto/ বা ইনস্টলেশনের মধ্যে থাকে |
config.properties এবং node.properties ফাইলগুলি খুলুন
আপনি টেক্সট এডিটর ব্যবহার করে (যেমন nano
বা vim
) কনফিগারেশন ফাইলগুলি সম্পাদনা করতে পারেন:
sudo nano /etc/presto/config.properties
sudo nano /etc/presto/node.properties
Presto পুনরায় শুরু করুন
কনফিগারেশন পরিবর্তন করার পর, Presto সার্ভার পুনরায় চালু করুন:
sudo /opt/presto/bin/launcher restart
এই কনফিগারেশন ফাইলগুলির মাধ্যমে আপনি Presto সার্ভার এবং নোডগুলির কার্যকারিতা সম্পূর্ণরূপে কাস্টমাইজ করতে পারবেন। Proper configuration ensures better performance, resource allocation, and overall management of Presto clusters.
common.read_more