অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা প্রবাহ অটোমেশন টুল যা ক্লাস্টার মোডে পরিচালিত হতে পারে। NiFi ক্লাস্টার সেটআপ এবং কনফিগারেশন আপনাকে একাধিক নোড (nodes) ব্যবহার করে ডেটা প্রোসেসিংকে স্কেল করতে সাহায্য করে। এটি ডেটা প্রোসেসিংয়ের কার্যকারিতা এবং স্কেলেবিলিটি বৃদ্ধি করতে সহায়ক, বিশেষ করে যখন বড় আকারের ডেটা বা ট্রাফিক পরিচালনা করতে হয়। এখানে আমরা NiFi ক্লাস্টার সেটআপ এবং কনফিগারেশন সম্পর্কিত বিস্তারিত আলোচনা করব।
NiFi ক্লাস্টার সেটআপের জন্য কিছু মূল পদক্ষেপ রয়েছে, যেগুলি সঠিকভাবে অনুসরণ করতে হবে। এই পদক্ষেপগুলির মধ্যে রয়েছে NiFi নোড কনফিগারেশন, নোড গঠনের জন্য উপযুক্ত কনফিগারেশন ফাইল সম্পাদনা, এবং ক্লাস্টার ক্লাস্টার কমিউনিকেশন নিশ্চিত করার জন্য অন্যান্য প্রয়োজনীয় কনফিগারেশন।
ক্লাস্টার সেটআপের আগে, নিচের বিষয়গুলি নিশ্চিত করুন:
nifi.properties
ফাইল কনফিগারেশনপ্রতিটি নোডে NiFi কনফিগারেশনের জন্য nifi.properties
ফাইলটি কাস্টমাইজ করতে হবে। এই ফাইলটির মধ্যে ক্লাস্টার সংক্রান্ত গুরুত্বপূর্ণ সেটিংস থাকে।
nifi.cluster.is.node
: এই সেটিংটি ক্লাস্টার নোড কিনা তা নির্ধারণ করে। এটি স্লেভ নোডে true
এবং মাষ্টার নোডে false
হতে হবে।
nifi.cluster.is.node=true
nifi.cluster.node.address
: প্রতিটি নোডের IP ঠিকানা বা DNS নাম দিতে হবে, যা ক্লাস্টার নোডের জন্য ব্যবহার হবে।
nifi.cluster.node.address=<Node-IP-or-DNS>
nifi.cluster.node.protocol.port
: নোডের জন্য একটি পৃথক পোর্ট ব্যবহার করতে হবে, যার মাধ্যমে অন্যান্য নোডের সঙ্গে যোগাযোগ হবে। (যেমন 5000
)
nifi.cluster.node.protocol.port=5000
nifi.cluster.node.read.timeout
: ক্লাস্টার নোডের মধ্যে যোগাযোগের জন্য টেম্পোরারি টাইমআউট সেট করা।
nifi.cluster.node.read.timeout=30 secs
nifi.cluster.flow.election.max.wait.time
: নির্বাচনের সময়সীমা সেট করুন। এটি ক্লাস্টারে কোন নোডকে মাস্টার হিসেবে নির্বাচন করা হবে তা নির্ধারণ করে।
nifi.cluster.flow.election.max.wait.time=10 secs
state.management.properties
ফাইল কনফিগারেশনএই ফাইলটি NiFi স্টেট ম্যানেজমেন্ট কনফিগারেশন পরিচালনা করতে ব্যবহৃত হয়।
state.management.provider
: ক্লাস্টারে রিজিড স্টেট শেয়ার করতে হবে, সাধারণত Zookeeper
ব্যবহৃত হয়।
state.management.provider=org.apache.nifi.cluster.coordination.zookeeper.ZooKeeperStateManagementProvider
state.management.zookeeper.connect.string
: Zookeeper সার্ভারের ঠিকানা বা ক্লাস্টারের Zookeeper ইনস্ট্যান্সের ঠিকানা।
state.management.zookeeper.connect.string=<Zookeeper-Host:Port>
NiFi ক্লাস্টারিং জন্য Zookeeper একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি নোডের মধ্যে স্টেট শেয়ার করে এবং ক্লাস্টারের সিঙ্ক্রোনাইজেশন নিশ্চিত করে।
state.management.zookeeper.connect.string
ফিল্ডে Zookeeper এর IP ঠিকানা এবং পোর্ট উল্লেখ করতে হবে।এখন, আপনার NiFi ক্লাস্টারের প্রতিটি নোডকে চালাতে হবে। প্রথমে, মাস্টার নোডটি চালু করুন:
./nifi.sh start
তারপর স্লেভ নোড চালু করুন:
./nifi.sh start
আপনার নোডগুলির সঠিকভাবে কাজ করার জন্য, আপনি NiFi UI তে লগইন করে সেগুলির অবস্থা চেক করতে পারেন।
একটি NiFi ক্লাস্টার সেটআপ করার পর, আপনি NiFi ওয়েব ইউজার ইন্টারফেসে (UI) গিয়ে পুরো ক্লাস্টারের অবস্থা দেখতে পারবেন। এখানে আপনি ক্লাস্টারের প্রতিটি নোডের স্ট্যাটাস, নোডের সংযোগ, এবং ফ্লো অবস্থা মনিটর করতে পারবেন।
NiFi ক্লাস্টার সেটআপ এবং কনফিগারেশন করা একটি শক্তিশালী কার্যক্রম যা আপনাকে ডেটা প্রোসেসিংয়ের স্কেল এবং কার্যক্ষমতা বৃদ্ধি করতে সাহায্য করে। সঠিকভাবে nifi.properties
, state.management.properties
ফাইল কনফিগারেশন এবং Zookeeper ইনটিগ্রেশন সেটআপের মাধ্যমে আপনি একটি কার্যকরী NiFi ক্লাস্টার তৈরি করতে পারবেন। এই ক্লাস্টারের মাধ্যমে আপনি বড় আকারের ডেটা প্রবাহ পরিচালনা করতে পারবেন এবং একাধিক নোডের মধ্যে লোড ব্যালেন্সিং ও রিডান্ড্যান্স নিশ্চিত করতে পারবেন।
common.read_more