Storm Bolts দিয়ে HDFS এ Data Store করা

Storm এবং HDFS Integration - অ্যাপাচি স্টর্ম (Apache Storm) - Big Data and Analytics

406

Apache Storm হলো একটি রিয়েল-টাইম ডেটা প্রসেসিং সিস্টেম যা মূলত ডিস্ট্রিবিউটেড আর্কিটেকচারে কাজ করে এবং দ্রুত ডেটা প্রসেসিং নিশ্চিত করে। Storm-এর একটি শক্তিশালী ফিচার হলো Bolts, যা ডেটা প্রক্রিয়া করার জন্য ব্যবহৃত হয়। এই Bolts গুলো বিভিন্ন ধরনের কাজ করতে পারে, যেমন ডেটা ফিল্টারিং, অ্যাগ্রিগেশন, এবং ডেটা স্টোরেজ। আজকের আলোচনা হবে Storm Bolts দিয়ে HDFS (Hadoop Distributed File System) এ ডেটা কিভাবে স্টোর করা যায়।


HDFS (Hadoop Distributed File System) কী?

HDFS হলো একটি ডিস্ট্রিবিউটেড ফাইল সিস্টেম যা হ্যাডুপ (Hadoop) ইকোসিস্টেমে ব্যবহৃত হয়। এটি বড় আকারের ডেটা স্টোরেজের জন্য ডিজাইন করা হয়েছে এবং ডেটাকে ক্লাস্টারের মধ্যে বিভক্ত করে বেশ কয়েকটি সার্ভারে সংরক্ষণ করে। HDFS এর প্রধান সুবিধা হলো এর উচ্চ স্কেলেবিলিটি, ডেটার পুনরুদ্ধার ক্ষমতা, এবং এটি বড় ডেটা প্রসেসিং সিস্টেমের জন্য উপযুক্ত।


Storm Bolts দিয়ে HDFS এ Data Store করার প্রক্রিয়া

Storm Bolts দিয়ে HDFS এ ডেটা স্টোর করার জন্য আপনাকে কিছু নির্দিষ্ট স্টেপ অনুসরণ করতে হবে। এখানে কয়েকটি ধাপ আলোচনা করা হবে যা Storm টপোলজির মধ্যে ব্যবহার করে ডেটা HDFS এ সঞ্চয় করা যেতে পারে।

১. Storm HDFS Bolt ব্যবহার করা

Storm-এ HDFS এ ডেটা লেখার জন্য একটি বিশেষ HDFS Bolt ব্যবহার করা হয়, যা Storm টপোলজির অংশ হিসেবে কাজ করে। HDFS Bolt Storm এর মাধ্যমে ডেটাকে HDFS সিস্টেমে লেখার কাজ করে থাকে।

হ্যাডুপ কনফিগারেশন:

Storm Bolts ব্যবহার করার আগে HDFS এর সাথে সংযোগ স্থাপন করতে হবে, এবং HDFS কনফিগারেশন প্রয়োজন হবে। আপনি Hadoop Configuration ক্লাস ব্যবহার করে HDFS এর জন্য প্রপার কনফিগারেশন সেট করতে পারেন।

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://namenode_host:9000");
FileSystem fs = FileSystem.get(conf);

এখানে, namenode_host HDFS ক্লাস্টারের নামনোডের আইপি বা ডোমেইন নাম হবে এবং 9000 হলো হাডুপ এর পোর্ট (যদি অন্য পোর্ট ব্যবহার না করা হয়ে থাকে)।

২. Storm HDFS Bolt ব্যবহার করা

Storm টপোলজিতে HDFS এ ডেটা লেখার জন্য HDFS Bolt ব্যবহার করা হয়। এই Bolt এ HDFS এর পাথ এবং ফাইল নাম উল্লেখ করতে হয়। HDFS Bolt স্পেসিফিক্যালি একটি ফাইলের মধ্যে ডেটা লেখার কাজ করবে। আপনি যদি লগ ফাইল বা অন্যান্য ডেটা ফাইল স্টোর করতে চান, তবে Storm HDFS Bolt ব্যবহার করতে পারেন।

import org.apache.storm.hdfs.bolt.HdfsBolt;
import org.apache.storm.hdfs.bolt.format.DefaultFileNameFormat;
import org.apache.storm.hdfs.bolt.format.FileNameFormat;

FileNameFormat fileNameFormat = new DefaultFileNameFormat().withPath("/user/hdfs/output/");

HdfsBolt hdfsBolt = new HdfsBolt()
    .withFsUrl("hdfs://namenode_host:9000")
    .withFileNameFormat(fileNameFormat)
    .withRotationPolicy(new CountRotationPolicy(10, FileRotationPolicy.DEFAULT_ROTATE_INTERVAL))
    .withRecordFormat(new TextLineFormat());

এখানে:

  • withFsUrl: HDFS সিস্টেমের URL উল্লেখ করা হয় (এটি HDFS নামনোড এবং পোর্টের মাধ্যমে নির্ধারিত হয়)।
  • withFileNameFormat: স্টোর করার জন্য HDFS পাথ এবং ফাইলের নাম নির্ধারণ করে।
  • withRotationPolicy: ফাইলের রোটেশন পলিসি নির্ধারণ করে, যেমন কতটি লাইন পর পর ফাইল রোটেট হবে।
  • withRecordFormat: এই প্যারামিটারটি স্পেসিফিকেশন করে কিভাবে ডেটা ফরম্যাটে লেখা হবে। এখানে, TextLineFormat ব্যবহার করা হয়েছে।

৩. Storm Topology এ HDFS Bolt যুক্ত করা

Storm টপোলজিতে HDFS Bolt যুক্ত করতে হলে, টপোলজির মধ্যে একটি নির্দিষ্ট Bolt-এ ডেটা পাঠানো হবে। এই Bolt কনফিগার করা হলে, যখন স্পাউট থেকে ডেটা আসে, তখন সেটি বোল্টে চলে গিয়ে HDFS এ লেখার জন্য পাঠানো হবে।

TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("spout", new MySpout());
builder.setBolt("hdfsBolt", hdfsBolt, 2).shuffleGrouping("spout");

Config conf = new Config();
StormSubmitter.submitTopology("HDFS-Store-Topology", conf, builder.createTopology());

এখানে, shuffleGrouping দ্বারা স্পাউট থেকে আসা ডেটা বোল্টে পাঠানো হয়। HDFS Bolt ডেটা গ্রহণ করে এবং সেটি HDFS এ সঞ্চয় করে।


HDFS-এ Data Store করার সুবিধা

  1. স্কেলেবিলিটি: HDFS ডিস্ট্রিবিউটেড সিস্টেমের মাধ্যমে বড় আকারের ডেটা সঞ্চয় করতে পারে।
  2. ফল্ট টলারেন্স: HDFS ডেটা স্বয়ংক্রিয়ভাবে রিপ্লিকেটেড ফাইল সিস্টেমে সঞ্চয় করে, যাতে সিস্টেমের কোনো নোড ব্যর্থ হলেও ডেটা হারানো না যায়।
  3. রিয়েল-টাইম ডেটা সংগ্রহ: Storm এর মাধ্যমে রিয়েল-টাইম ডেটা সংগ্রহ করা যেতে পারে এবং তা HDFS-এ সঞ্চিত করা যায়, যা পরে বিশ্লেষণের জন্য ব্যবহার করা যেতে পারে।
  4. পুনরুদ্ধার: HDFS এর মাধ্যমে ডেটা পুনরুদ্ধার করার ক্ষমতা Storm টপোলজির মধ্যে ব্যবহৃত ফাইল সিস্টেমের সাথে সামঞ্জস্যপূর্ণ।

সারাংশ

Apache Storm Bolts ব্যবহার করে HDFS-এ ডেটা স্টোর করা একটি শক্তিশালী পদ্ধতি, যা রিয়েল-টাইম ডেটা প্রসেসিং এবং বিশ্লেষণের জন্য অত্যন্ত কার্যকর। HDFS Bolt Storm টপোলজির মাধ্যমে ডেটা সংগ্রহ করে এবং তা HDFS-এ সঞ্চয় করে, যাতে ডেটা বিশ্লেষণ বা ভবিষ্যতে ব্যবহার করার জন্য সংরক্ষিত থাকে। Storm-এর এই ক্ষমতা ডিস্ট্রিবিউটেড ডেটা প্রসেসিং, স্কেলেবিলিটি এবং ফল্ট টলারেন্স নিশ্চিত করে।

Content added By
Promotion

Are you sure to start over?

Loading...