Presto একটি ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন, এবং এটি একাধিক নোডের মাধ্যমে কাজ করে, যা একটি Presto ক্লাস্টার গঠন করে। ক্লাস্টারটি মূলত দুটি ধরনের নোড নিয়ে গঠিত: Coordinator নোড এবং Worker নোড। Coordinator নোড কোয়েরি পরিকল্পনা করে এবং Worker নোডগুলিতে কাজ বিতরণ করে, যা ডেটা প্রক্রিয়া করে।
Presto ক্লাস্টার সেটআপের জন্য নিম্নলিখিত ধাপগুলো অনুসরণ করতে হবে:
১. Coordinator নোড সেটআপ
Coordinator নোড হল Presto ক্লাস্টারের কেন্দ্রীয় উপাদান, যা কোয়েরি গ্রহণ এবং এক্সিকিউশন প্ল্যান তৈরি করে। এটি সবকিছুর নিয়ন্ত্রণ করে এবং কোয়েরি প্রক্রিয়াকরণের জন্য Worker নোডগুলিতে কাজ পাঠায়।
Coordinator কনফিগারেশন:
config.properties ফাইল:
- coordinator=true: এটি Coordinator নোডে রাখতে হবে।
- node-scheduler.include-coordinator=true: এটি Coordinator নোডে থাকা উচিত যাতে এটি নিজের কাজও করতে পারে।
- http-server.http.port=8080: HTTP সার্ভার পোর্ট নম্বর নির্ধারণ করুন (যেমন: 8080)।
- query.max-memory=5GB: কোয়েরি প্রক্রিয়াকরণের জন্য সর্বোচ্চ মেমরি সীমা নির্ধারণ করুন।
- query.max-memory-per-node=1GB: প্রতিটি নোডে ব্যবহৃত সর্বোচ্চ মেমরি নির্ধারণ করুন।
config.properties ফাইলের উদাহরণ:
coordinator=true node-scheduler.include-coordinator=true http-server.http.port=8080 query.max-memory=5GB query.max-memory-per-node=1GBnode.properties ফাইল:
- node.id: Node এর একটি ইউনিক আইডি দিন।
- http-server.http.port=8080: Coordinator নোডের পোর্ট নম্বর নির্ধারণ করুন।
node.properties ফাইলের উদাহরণ:
node.id=coordinator-1 http-server.http.port=8080
২. Worker নোড সেটআপ
Worker নোড গুলি কাজ প্রক্রিয়া করার জন্য দায়ী। এগুলি Coordinator নোডের নির্দেশনা অনুযায়ী কোয়েরি প্রক্রিয়া করে এবং ফলাফল ফেরত পাঠায়।
Worker কনফিগারেশন:
config.properties ফাইল:
- coordinator=false: Worker নোডে এটি সঠিক সেটিং।
- http-server.http.port=8081: Worker নোডের পোর্ট নম্বর নির্ধারণ করুন (যেমন: 8081)।
config.properties ফাইলের উদাহরণ:
coordinator=false http-server.http.port=8081node.properties ফাইল:
- node.id: Worker নোডের ইউনিক আইডি দিন (যেমন: worker-1)।
- http-server.http.port=8081: Worker নোডের পোর্ট নম্বর নির্ধারণ করুন।
node.properties ফাইলের উদাহরণ:
node.id=worker-1 http-server.http.port=8081
৩. Cluster যোগ করা এবং নোড সংযোগ করা
ক্লাস্টারে নতুন Worker নোড যোগ করার জন্য Coordinator নোডের সাথে Worker নোডের সংযোগ স্থাপন করতে হবে। Presto এর node.properties ফাইলে নীচের কনফিগারেশনগুলো করতে হবে।
Worker নোড কনফিগারেশন:
- Worker নোডে config.properties ফাইলের coordinator সেটিং false করে দিন।
Worker নোডের node.properties ফাইলে coordinator.uri সেটিং যোগ করুন, যাতে Worker নোডটি Coordinator নোডের সাথে সংযুক্ত হতে পারে:
coordinator.uri=http://<coordinator-ip>:8080
নোড চেক করা:
Worker নোড সফলভাবে Coordinator নোডের সাথে সংযুক্ত হয়েছে কিনা, তা যাচাই করতে Presto ওয়েব UI-তে গিয়ে দেখতে পারেন। সাধারণভাবে, আপনি http://<coordinator-ip>:8080 এ গিয়ে সমস্ত সংযুক্ত নোডের তথ্য দেখতে পারবেন।
৪. Cluster পরিচালনা এবং মনিটরিং
Cluster Management:
- Presto CLI ব্যবহার করে কোয়েরি চালানো, এবং Coordinator এবং Worker নোডগুলির স্বাস্থ্য পরীক্ষা করা যায়।
Cluster Expansion:
- Presto ক্লাস্টারে আরও Worker নোড যোগ করতে, নতুন Worker নোডের কনফিগারেশন সম্পন্ন করে ক্লাস্টারে সংযুক্ত করুন।
Monitor Cluster Health:
- Cluster এর স্বাস্থ্য মনিটর করতে Prometheus এবং Grafana ব্যবহার করা যায়।
৫. Presto Web UI
Presto Web UI-তে ক্লাস্টারের সমস্ত নোড, কোয়েরি, এবং কাজের অবস্থা মনিটর করা যায়। এটি http://<coordinator-ip>:8080 এ প্রবেশ করে অ্যাক্সেস করা যায়।
- Web UI: এখানে ক্লাস্টারের প্রতিটি Worker নোডের অবস্থা, কোয়েরি গুলি এবং অন্যান্য কার্যকলাপ দেখতে পারবেন।
সংক্ষেপে:
- Coordinator নোড কনফিগার করুন এবং
coordinator=trueসেটিং দিন। - Worker নোড কনফিগার করুন এবং
coordinator=falseসেটিং দিন। - Worker নোডগুলিকে Coordinator নোডের সাথে সংযুক্ত করুন
coordinator.uriসেটিং দিয়ে। - Presto Web UI ব্যবহার করে ক্লাস্টারের অবস্থা পর্যবেক্ষণ করুন।
- নতুন Worker নোড যোগ করুন এবং ক্লাস্টার স্কেল করুন।
এই ধাপগুলো অনুসরণ করে আপনি Presto ক্লাস্টার সফলভাবে সেটআপ করতে পারবেন।
Read more