অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ইন্টিগ্রেশন টুল যা বিভিন্ন ডেটা প্রসেসিং অপারেশনকে সহজ করে। তবে, কখনও কখনও আপনার নির্দিষ্ট প্রয়োজনের জন্য একটি কাস্টম প্রোসেসর তৈরি করার প্রয়োজন হতে পারে। নিফাই কাস্টম প্রোসেসর তৈরি করা একটি মৌলিক পদ্ধতি, যা Java প্রোগ্রামিং ভাষায় কোডিং করতে হয়। এই প্রোসেসরটি ডেটা প্রক্রিয়া এবং ট্রান্সফর্মেশন কাস্টমাইজ করতে সহায়ক হতে পারে।
Maven প্রকল্প তৈরি
কাস্টম প্রোসেসর তৈরি করতে Maven একটি ভালো টুল, যা নির্ভরতা এবং বিল্ড ম্যানেজমেন্টে সহায়ক। আপনাকে একটি Maven প্রকল্প তৈরি করতে হবে। pom.xml
ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করতে হবে:
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<version>1.x.x</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-processor-api</artifactId>
<version>1.x.x</version>
</dependency>
</dependencies>
nifi-processor-api
ব্যবহার করে কাস্টম প্রোসেসরের জন্য একটি Java ক্লাস তৈরি করতে হবে। এই ক্লাসে প্রোসেসরের কার্যক্রম এবং ইনপুট আউটপুট ব্যবস্থাপনা করতে হবে।প্রথমে একটি Java ক্লাস তৈরি করুন যা AbstractProcessor
ক্লাস থেকে উত্তরাধিকারী হবে। এই ক্লাসটি আপনার প্রোসেসরের বেস ফাংশনালিটি সরবরাহ করবে। নিচে একটি কাস্টম প্রোসেসরের উদাহরণ:
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.annotation.lifecycle.OnScheduled;
public class CustomProcessor extends AbstractProcessor {
public static final Relationship SUCCESS = new Relationship.Builder()
.name("success")
.build();
@Override
public void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException {
// FlowFile গ্রহণ করা
FlowFile flowFile = session.get();
if (flowFile == null) {
return;
}
// ডেটা প্রক্রিয়া করার জন্য কোড যুক্ত করুন
// উদাহরণস্বরূপ, FlowFile এর কন্টেন্ট ম্যানিপুলেট করা
// FlowFile রিসোর্স ফিরিয়ে দেওয়া
session.transfer(flowFile, SUCCESS);
}
}
এই উদাহরণে, onTrigger
মেথডে FlowFile গ্রহণ করা হয় এবং কিছু প্রক্রিয়া করার পরে সফলভাবে SUCCESS
রিলেশনশিপে স্থানান্তর করা হয়।
প্রোসেসর কনফিগারেশন এবং ডিফাইনেশনকে উপযুক্তভাবে সেট করতে আপনাকে @Trigger
এবং অন্যান্য এনোটেশন ব্যবহার করতে হবে। এটি আপনার প্রোসেসরের জন্য ইনপুট এবং আউটপুট কনফিগারেশন নির্ধারণ করে।
import org.apache.nifi.processor.annotation.Tags;
import org.apache.nifi.processor.annotation.InputRequirement;
import org.apache.nifi.processor.annotation.CapabilityDescription;
@Tags({"custom", "processor"})
@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
@CapabilityDescription("This is a custom processor to perform custom actions.")
public class CustomProcessor extends AbstractProcessor {
// Class implementation here...
}
এখানে, @Tags
এবং @CapabilityDescription
ব্যবহার করে আপনার প্রোসেসরের জন্য মেটাডেটা যোগ করা হচ্ছে।
একবার আপনার কাস্টম প্রোসেসর কোড লেখা হয়ে গেলে, Maven ব্যবহার করে এটি বিল্ড এবং প্যাকেজ করতে হবে। নিচে একটি সাধারণ Maven কমান্ড:
mvn clean install
এই কমান্ডটি আপনার প্রোজেক্টটি বিল্ড করবে এবং target/
ফোল্ডারে JAR ফাইল তৈরি করবে।
একবার JAR ফাইল তৈরি হলে, এটি নিফাই ইনস্টলেশনের lib
ডিরেক্টরিতে স্থানান্তর করতে হবে।
cp target/custom-processor-1.0.jar /opt/nifi/lib/
এরপর, নিফাই সার্ভিস পুনরায় চালু করুন:
./bin/nifi.sh restart
এখন আপনি নিফাই UI তে গিয়ে আপনার কাস্টম প্রোসেসর দেখতে পারবেন এবং এটি ব্যবহার করতে পারবেন।
প্রপার্টি কনফিগারেশন
কাস্টম প্রোসেসর তৈরি করার সময় আপনাকে ব্যবহারকারীর কনফিগারযোগ্য প্রপার্টি নির্ধারণ করতে হবে। এই প্রপার্টিগুলি @InputRequirement
এবং @Property
এনোটেশন ব্যবহার করে কনফিগার করা যেতে পারে।
উদাহরণস্বরূপ:
@Property(label = "Custom Property", description = "This is a custom property.")
private String customProperty;
রিলেশনশিপ কনফিগারেশন
আপনার প্রোসেসরের সাথে কাজ করার জন্য বিভিন্ন রিলেশনশিপ (যেমন, SUCCESS
, FAILURE
) তৈরি করতে হবে যাতে প্রোসেসরটি ডেটা আউটপুট ঠিকভাবে প্রক্রিয়া করতে পারে।
public static final Relationship FAILURE = new Relationship.Builder()
.name("failure")
.build();
অ্যাপাচি নিফাই (Apache NiFi) এ কাস্টম প্রোসেসর তৈরি করা একটি শক্তিশালী পদ্ধতি যা আপনাকে নির্দিষ্ট ডেটা প্রক্রিয়া এবং ট্রান্সফর্মেশন কার্যক্রম কাস্টমাইজ করার সুযোগ দেয়। Java প্রোগ্রামিং ভাষা এবং নিফাই API ব্যবহার করে কাস্টম প্রোসেসর তৈরি করা যায়, যা বিভিন্ন ডেটা ফ্লো অপারেশন সহজ ও কার্যকরী করতে সহায়ক। এতে আপনাকে ক্লাস তৈরি, প্রপার্টি কনফিগারেশন, এবং বিল্ড পদ্ধতি শিখতে হবে, তারপর JAR ফাইলটি নিফাই সার্ভারে ডিপ্লয় করে ক্লাস্টারে ইন্সটল করতে হবে।
common.read_more