Skill

Kafka ইনস্টলেশন এবং সেটআপ

অ্যাপাচি কাফকা (Apache Kafka) - Big Data and Analytics

320

অ্যাপাচি কাফকা (Apache Kafka) একটি ওপেন সোর্স স্ট্রিমিং প্ল্যাটফর্ম যা বৃহৎ পরিমাণে ডেটা স্টোর, প্রক্রিয়া এবং ট্রান্সফার করতে ব্যবহৃত হয়। এটি প্রধানত মেসেজিং এবং লগিং সিস্টেম হিসেবে ব্যবহৃত হলেও, স্ট্রিম প্রক্রিয়াকরণ (stream processing) এবং ডিস্ট্রিবিউটেড ডেটা সিস্টেম হিসেবে ব্যবহার করা হয়। কাফকা ইনস্টলেশন এবং সেটআপের জন্য নিচে বিস্তারিত পদক্ষেপ দেওয়া হলো।


কাফকা ইনস্টলেশন প্রক্রিয়া

১. জাভা ইনস্টল করা

কাফকা চালানোর জন্য আপনার সিস্টেমে Java ইনস্টল থাকা প্রয়োজন। কাফকা Java ভাষায় লেখা, তাই এটি Java Runtime Environment (JRE) বা Java Development Kit (JDK) নির্ভরশীল।

  • Java version চেক করা:

    java -version
    
  • Java ইনস্টল করতে:
    • Ubuntu/Debian:

      sudo apt update
      sudo apt install openjdk-11-jdk
      
    • CentOS/RHEL:

      sudo yum install java-11-openjdk-devel
      

২. কাফকা ডাউনলোড করা

কাফকা ইনস্টল করতে অ্যাপাচি কাফকার অফিসিয়াল ওয়েবসাইট থেকে কাফকা ভার্সন ডাউনলোড করতে হবে।

একটি নির্দিষ্ট কাফকা ভার্সন নির্বাচন করে .tgz ফাইল ডাউনলোড করুন।

৩. কাফকা এক্সট্র্যাক্ট করা

ডাউনলোড করা .tgz ফাইলটি এক্সট্র্যাক্ট করুন।

tar -xvzf kafka_2.13-<version>.tgz

এটি একটি নতুন ডিরেক্টরি তৈরি করবে যেখানে কাফকা ফাইলগুলো থাকবে।

৪. কাফকা কনফিগারেশন

কাফকার কনফিগারেশন ফাইলগুলি সাধারণত config/ ডিরেক্টরিতে থাকে। মূল কনফিগারেশন ফাইল দুটি হলো:

  • server.properties: কাফকা ব্রোকার কনফিগারেশন।
  • zookeeper.properties: জুকিপার কনফিগারেশন।

প্রাথমিকভাবে, আপনি ডিফল্ট কনফিগারেশনগুলো ব্যবহার করতে পারেন, তবে প্রয়োজন অনুযায়ী সেগুলি কাস্টমাইজ করা যেতে পারে।

৫. জুকিপার স্টার্ট করা

কাফকা ডিস্ট্রিবিউটেড সিস্টেমের মধ্যে Zookeeper ব্যবহৃত হয়। কাফকা সাধারণভাবে জুকিপারকে ডিফল্ট কনফিগারেশনে ব্যবহার করে, কিন্তু আপনি একে অন্য কোনো সিস্টেমেও কনফিগার করতে পারেন।

  • জুকিপার স্টার্ট করা:

    bin/zookeeper-server-start.sh config/zookeeper.properties
    

এটি জুকিপার সার্ভার শুরু করবে এবং কাফকা ব্রোকার এর সাথে সংযুক্ত হতে পারবে।

৬. কাফকা ব্রোকার স্টার্ট করা

একবার জুকিপার চলতে শুরু করলে, কাফকা ব্রোকার শুরু করা যাবে।

  • কাফকা ব্রোকার চালু করা:

    bin/kafka-server-start.sh config/server.properties
    

এটি কাফকা ব্রোকার চালু করবে এবং সিস্টেমটি ডেটা গ্রহণ এবং পাঠানোর জন্য প্রস্তুত হবে।

৭. টপিক তৈরি করা

কাফকা টপিক হলো ডেটা স্টোরেজ ইউনিট যেখানে মেসেজগুলি রাখা হয়। একটি টপিক তৈরি করতে, নিচের কমান্ড ব্যবহার করুন:

bin/kafka-topics.sh --create --topic <topic_name> --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

এটি একটি নতুন টপিক তৈরি করবে, যার নাম হবে <topic_name>

৮. টপিকের সাথে ডেটা পাঠানো (Producer)

কাফকা প্রডিউসার ব্যবহার করে টপিকে ডেটা পাঠানো যেতে পারে। নিচের কমান্ডটি ব্যবহার করে একটি মেসেজ প্রডিউস করা যাবে:

bin/kafka-console-producer.sh --topic <topic_name> --bootstrap-server localhost:9092

এরপর আপনি মেসেজ টাইপ করতে পারেন এবং তা কাফকা টপিকে পাঠানো হবে।

৯. টপিক থেকে ডেটা পড়া (Consumer)

কাফকা কনজিউমার ব্যবহার করে টপিক থেকে ডেটা পড়া যেতে পারে। নিচের কমান্ডটি ব্যবহার করুন:

bin/kafka-console-consumer.sh --topic <topic_name> --bootstrap-server localhost:9092 --from-beginning

এটি টপিক থেকে প্রথম থেকে সমস্ত ডেটা পড়বে।


কাফকা ক্লাস্টার সেটআপ

যদি আপনি কাফকা ক্লাস্টার সেটআপ করতে চান, তাহলে কয়েকটি কাফকা ব্রোকার ইনস্টল এবং কনফিগার করতে হবে। ক্লাস্টার পরিবেশে, আপনার ব্রোকারগুলির মধ্যে একে অপরের সাথে যোগাযোগ থাকতে হবে এবং সেগুলির মধ্যে ডেটা ভাগাভাগি করা হবে। এটি করার জন্য:

  1. ব্রোকার কনফিগারেশন পরিবর্তন: server.properties ফাইলে প্রতিটি ব্রোকারের জন্য broker.id, listeners, এবং zookeeper.connect কনফিগার করতে হবে।
  2. ক্লাস্টারে একাধিক ব্রোকার: একাধিক ব্রোকার কনফিগার করে kafka-server-start.sh কমান্ড দিয়ে সমস্ত ব্রোকার চালু করুন।
  3. টপিক পার্টিশনিং: ক্লাস্টারে ডেটা ভারসাম্যপূর্ণ রাখতে, টপিক পার্টিশনিং ব্যবহৃত হয়। একটি টপিকের একাধিক পার্টিশন হলে, বিভিন্ন ব্রোকারে ডেটা ভাগাভাগি করা যায়।

সারাংশ

অ্যাপাচি কাফকা ইনস্টলেশন এবং সেটআপ করার জন্য সিস্টেমে Java ইনস্টল করা, কাফকা ডাউনলোড এবং এক্সট্র্যাক্ট করা, জুকিপার এবং কাফকা ব্রোকার স্টার্ট করা, এবং টপিক তৈরি ও ডেটা পাঠানো-গ্রহণের কাজগুলো সম্পন্ন করতে হয়। কাফকা সাধারণত একটি ডিস্ট্রিবিউটেড প্ল্যাটফর্ম হিসেবে কাজ করে, যেখানে একাধিক ব্রোকার এবং জুকিপারকে একত্রে কনফিগার করা হয়। একাধিক ব্রোকার নিয়ে কাফকা ক্লাস্টার সেটআপও করা যায়, যা ডেটা পার্টিশনিং এবং লোড ব্যালেন্সিং নিশ্চিত করে।

Content added By

অ্যাপাচি কাফকা (Apache Kafka) ডাউনলোড এবং ইনস্টল করার প্রক্রিয়া বিভিন্ন অপারেটিং সিস্টেমে কিছুটা ভিন্ন হতে পারে। এখানে Windows, Linux, এবং macOS এ কাফকা ডাউনলোড এবং ইনস্টল করার বিস্তারিত গাইড দেওয়া হল।


Windows-এ Apache Kafka ইনস্টলেশন

1. Java ইনস্টলেশন নিশ্চিত করুন

কাফকা রান করার জন্য আপনাকে Java Development Kit (JDK) ইনস্টল করতে হবে। আপনি Oracle JDK অথবা OpenJDK ব্যবহার করতে পারেন।

  • Java ইনস্টল করার পর, কমান্ড প্রম্পটে java -version কমান্ডটি রান করে নিশ্চিত করুন যে Java সঠিকভাবে ইনস্টল হয়েছে।

2. Kafka ডাউনলোড করুন

  1. অ্যাপাচি কাফকার অফিসিয়াল ওয়েবসাইট (https://kafka.apache.org/downloads) থেকে কাফকার লেটেস্ট ভার্সন ডাউনলোড করুন।
  2. Kafka binary ফাইলটি .tgz বা .zip ফরম্যাটে ডাউনলোড হবে।

3. Kafka এক্সট্র্যাক্ট করুন

  • ডাউনলোড করা ফাইলটি Extract করুন। যেমন, .zip ফাইল হলে Windows-এ এটি Extract করার জন্য WinRAR অথবা 7-Zip ব্যবহার করতে পারেন।

4. Zookeeper সার্ভার চালু করুন

Kafka চালানোর জন্য প্রথমে Zookeeper সার্ভার চালু করতে হবে, কারণ কাফকা Zookeeper-এর মাধ্যমে ক্লাস্টার ম্যানেজমেন্ট পরিচালনা করে।

  1. Kafka ফোল্ডারে গিয়ে bin/windows/zookeeper-server-start.bat স্ক্রিপ্টটি রান করুন।

5. Kafka সার্ভার চালু করুন

Zookeeper চালু হওয়ার পর, কাফকা সার্ভার চালু করতে হবে:

  1. bin/windows/kafka-server-start.bat স্ক্রিপ্টটি রান করুন।

6. Kafka প্রডিউসার এবং কনজিউমার পরীক্ষা করুন

Kafka সফলভাবে চালু হলে, আপনি টার্মিনালে kafka-console-producer.bat এবং kafka-console-consumer.bat ব্যবহার করে ডেটা প্রেরণ এবং গ্রহণ পরীক্ষা করতে পারেন।


Linux-এ Apache Kafka ইনস্টলেশন

1. Java ইনস্টলেশন নিশ্চিত করুন

Linux-এ Java ইনস্টল করার জন্য টার্মিনালে নিম্নলিখিত কমান্ডটি রান করুন:

sudo apt update
sudo apt install openjdk-11-jdk

ইনস্টলেশনের পর Java ভার্সন চেক করতে:

java -version

2. Kafka ডাউনলোড করুন

Kafka-এর লেটেস্ট ভার্সন ডাউনলোড করতে:

wget https://downloads.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz

এটি কাফকা .tgz ফাইল ডাউনলোড করবে।

3. Kafka এক্সট্র্যাক্ট করুন

ফাইলটি Extract করুন:

tar -xvzf kafka_2.13-3.2.0.tgz

এটি একটি নতুন ফোল্ডার তৈরি করবে যার মধ্যে কাফকা ইনস্টলেশন ফাইল থাকবে।

4. Zookeeper সার্ভার চালু করুন

Kafka চালানোর জন্য Zookeeper সার্ভার চালু করতে হবে:

bin/zookeeper-server-start.sh config/zookeeper.properties

5. Kafka সার্ভার চালু করুন

Zookeeper চালু হওয়ার পর কাফকা সার্ভার শুরু করুন:

bin/kafka-server-start.sh config/server.properties

6. Kafka প্রডিউসার এবং কনজিউমার পরীক্ষা করুন

আপনি Kafka প্রডিউসার এবং কনজিউমার টেস্ট করতে পারেন:

  • প্রডিউসার চালানোর জন্য:

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    
  • কনজিউমার চালানোর জন্য:

    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
    

macOS-এ Apache Kafka ইনস্টলেশন

1. Homebrew ইনস্টলেশন (যদি না থাকে)

macOS-এ Homebrew ইনস্টল করা না থাকলে প্রথমে এটি ইনস্টল করুন:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Kafka এবং Zookeeper ইনস্টল করুন

Homebrew ব্যবহার করে Kafka এবং Zookeeper ইনস্টল করা খুব সহজ। নিম্নলিখিত কমান্ডটি রান করুন:

brew install kafka

3. Zookeeper সার্ভার চালু করুন

Kafka চালানোর জন্য প্রথমে Zookeeper চালু করতে হবে:

zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties

4. Kafka সার্ভার চালু করুন

Zookeeper চালু হওয়ার পর Kafka সার্ভার শুরু করুন:

kafka-server-start /usr/local/etc/kafka/server.properties

5. Kafka প্রডিউসার এবং কনজিউমার পরীক্ষা করুন

Kafka প্রডিউসার এবং কনজিউমার টেস্ট করতে:

  • প্রডিউসার চালানোর জন্য:

    kafka-console-producer --broker-list localhost:9092 --topic test
    
  • কনজিউমার চালানোর জন্য:

    kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning
    

সারাংশ

অ্যাপাচি কাফকা ইনস্টলেশন প্রক্রিয়া তিনটি অপারেটিং সিস্টেমে (Windows, Linux, macOS) প্রায় একই রকম, তবে সিস্টেম অনুযায়ী কিছু নির্দিষ্ট ধাপ রয়েছে। Java ইনস্টল করা, কাফকা ডাউনলোড এবং এক্সট্র্যাক্ট করা, Zookeeper এবং Kafka সার্ভার চালু করা — এসবই কাফকা চালু করার জন্য প্রথমিক পদক্ষেপ। একবার ইনস্টলেশন সম্পন্ন হলে, আপনি প্রডিউসার এবং কনজিউমার ব্যবহার করে Kafka সার্ভিস পরীক্ষা করতে পারবেন।

Content added By

অ্যাপাচি কাফকা একটি ডিস্ট্রিবিউটেড স্ট্রিমিং প্ল্যাটফর্ম যা Zookeeper এবং Kafka Broker এর মাধ্যমে কাজ করে। কাফকা ক্লাস্টারের সঠিক কার্যক্রম নিশ্চিত করতে Zookeeper এবং Kafka Broker-এর সঠিক কনফিগারেশন অপরিহার্য। নিচে এই দুই উপাদান কনফিগারেশনের বিষয়ে বিস্তারিত আলোচনা করা হলো।


Zookeeper কনফিগারেশন

Zookeeper হল একটি কোঅর্ডিনেটর সার্ভিস যা কাফকা ক্লাস্টারের মেটাডেটা এবং কোঅর্ডিনেশন ম্যানেজ করতে ব্যবহৃত হয়। এটি কাফকা ক্লাস্টারের ব্রোকার এবং প্যার্টিশনগুলোর মধ্যে সিঙ্ক্রোনাইজেশন এবং রিলায়েবিলিটি বজায় রাখে।

১. Zookeeper সার্ভার ইনস্টলেশন এবং কনফিগারেশন

  1. Zookeeper ডাউনলোড: প্রথমে Zookeeper ডাউনলোড করুন:
  2. Zookeeper কনফিগারেশন ফাইল: Zookeeper কনফিগারেশন ফাইল সাধারণত zoo.cfg নামক একটি ফাইল থাকে, যা Zookeeper ডিরেক্টরির conf ফোল্ডারে থাকে। এই ফাইলটি প্রয়োজনীয় কনফিগারেশন সেটিংসের জন্য ব্যবহৃত হয়।

    এখানে কিছু গুরুত্বপূর্ণ কনফিগারেশন:

    • dataDir=/var/lib/zookeeper: Zookeeper ডেটা সংরক্ষণের লোকেশন নির্ধারণ করে।
    • clientPort=2181: Zookeeper সার্ভারের ক্লায়েন্ট পোর্ট, যা অন্যান্য সিস্টেমের সাথে যোগাযোগের জন্য ব্যবহৃত হয়।
    • tickTime=2000: Zookeeper সিস্টেমের টাইমআউট পরামিতি, এখানে এটি 2000 মিলিসেকেন্ড।
    • initLimit=10: ক্লাস্টারের অন্যান্য সার্ভারের সাথে সিঙ্ক্রোনাইজেশন ইনিশিয়াল টাইমসীমা।
    • syncLimit=5: সিঙ্ক্রোনাইজেশন পরামিতি, সার্ভাররা কত দ্রুত সিঙ্ক্রোনাইজ হবে তা নির্ধারণ করে।
  3. Zookeeper সার্ভার চালানো: Zookeeper চালাতে নিম্নলিখিত কমান্ড ব্যবহার করা হয়:

    bin/zkServer.sh start
    

২. Zookeeper মেইনটেনেন্স:

  • স্ট্যাটাস চেক: bin/zkServer.sh status
  • স্টপ করা: bin/zkServer.sh stop

Kafka Broker কনফিগারেশন

কাফকা ব্রোকারগুলি হলো কাফকা ক্লাস্টারের মূল উপাদান। একটি কাফকা ক্লাস্টারে একাধিক ব্রোকার থাকতে পারে, এবং এগুলি একে অপরের সাথে যোগাযোগ করে ডেটা ট্রান্সফার এবং মেটাডেটা পরিচালনা করে।

১. Kafka Broker কনফিগারেশন ফাইল:

কাফকা ব্রোকারের কনফিগারেশন সাধারণত server.properties ফাইলে থাকে। এটি কাফকার ইনস্টলেশন ডিরেক্টরিতে অবস্থিত থাকে। এখানে কিছু গুরুত্বপূর্ণ কনফিগারেশন সেটিংস দেওয়া হলো:

  • broker.id: প্রতিটি কাফকা ব্রোকারের জন্য একটি ইউনিক আইডি দিতে হয়, উদাহরণস্বরূপ:

    broker.id=1
    
  • listeners: ব্রোকারের সাথে কনট্যাক্ট করার জন্য পোর্টের নাম ও ঠিকানা সেট করা হয়।

    listeners=PLAINTEXT://0.0.0.0:9092
    

    এখানে PLAINTEXT অর্থ হল সিকিউরিটি ছাড়া সাধারণ পোর্ট 9092 তে কাফকা শোনাচ্ছে।

  • log.dirs: কাফকা যেখানে ডেটা স্টোর করবে সেই লোকেশন নির্ধারণ করে:

    log.dirs=/var/lib/kafka/data
    
  • zookeeper.connect: কাফকা ব্রোকার Zookeeper সার্ভারের সাথে যোগাযোগ করতে এই কনফিগারেশন ব্যবহার করে:

    zookeeper.connect=localhost:2181
    

    এখানে localhost:2181 হলো Zookeeper সার্ভারের লোকেশন ও পোর্ট নম্বর।

  • num.partitions: ডিফল্টভাবে কতটি পার্টিশন হবে তা নির্ধারণ করে:

    num.partitions=1
    
  • log.retention.hours: কাফকা কত সময় পর্যন্ত ডেটা রাখবে, যেমন 168 ঘণ্টা (৭ দিন):

    log.retention.hours=168
    

২. Kafka Broker চালানো:

কাফকা ব্রোকার চালাতে নিম্নলিখিত কমান্ড ব্যবহার করা হয়:

bin/kafka-server-start.sh config/server.properties

৩. একাধিক ব্রোকার কনফিগারেশন:

কাফকা ক্লাস্টারে একাধিক ব্রোকার সেটআপ করার সময়, প্রতিটি ব্রোকারের জন্য আলাদা server.properties কনফিগারেশন ফাইল ব্যবহার করতে হয়। একাধিক ব্রোকার সেটআপ করার সময় ব্রোকার আইডি এবং Zookeeper কনফিগারেশন পরিবর্তন করতে হয়। উদাহরণস্বরূপ:

  • ব্রোকার 1: broker.id=1, zookeeper.connect=localhost:2181
  • ব্রোকার 2: broker.id=2, zookeeper.connect=localhost:2181

Zookeeper এবং Kafka Broker কনফিগারেশনের মধ্যে সম্পর্ক

  • Zookeeper ক্লাস্টার: কাফকা ব্রোকারগুলির মধ্যে Zookeeper একটি কেন্দ্রীয় ভূমিকা পালন করে। এটি কাফকা ব্রোকারদের মধ্যে মেটাডেটা সিঙ্ক্রোনাইজ এবং কোঅর্ডিনেশন করে থাকে।
  • Kafka Broker: প্রতিটি ব্রোকার একটি নির্দিষ্ট ডেটা পার্টিশন এবং টপিকের জন্য দায়িত্বশীল থাকে। এটি Zookeeper-এর সাথে সংযুক্ত হয়ে ডেটা ব্যবস্থাপনা ও ডিসট্রিবিউশন নিশ্চিত করে।

সারাংশ

Zookeeper এবং Kafka Broker কনফিগারেশন কাফকা ক্লাস্টারের সঠিক কার্যক্রম নিশ্চিত করতে অত্যন্ত গুরুত্বপূর্ণ। Zookeeper সিস্টেমের কোঅর্ডিনেশন এবং মেটাডেটা ম্যানেজ করে, এবং Kafka Broker ডেটা স্টোর এবং পরিবহন ব্যবস্থা পরিচালনা করে। Zookeeper এবং Kafka Broker এর কনফিগারেশন সঠিকভাবে সেটআপ করলে কাফকা ক্লাস্টার কার্যকরভাবে কাজ করবে, এবং ডেটা ট্রান্সফার ও প্রসেসিং দ্রুত ও নির্ভরযোগ্য হবে।

Content added By

অ্যাপাচি কাফকা (Apache Kafka) একটি উচ্চ পারফরম্যান্স এবং স্কেলেবল স্ট্রিমিং প্ল্যাটফর্ম যা ডেটা স্ট্রিমিং এবং মেসেজিং সিস্টেম হিসেবে কাজ করে। কাফকা ক্লাস্টার একটি ডিস্ট্রিবিউটেড সিস্টেম, যেখানে একাধিক কাফকা ব্রোকার (broker) একটি সিস্টেমে একত্রিত হয়ে কাজ করে। ক্লাস্টার তৈরি করার মাধ্যমে কাফকা সিস্টেমের স্কেলেবিলিটি এবং ফোল্ট টলারেন্স (Fault Tolerance) বৃদ্ধি পায়।

এখানে আমরা Kafka Cluster তৈরি করার ধাপগুলো নিয়ে আলোচনা করবো।


১. কাফকা এবং জুকিপার (Zookeeper) ইনস্টলেশন

Kafka ক্লাস্টার কাজ করার জন্য Zookeeper সার্ভারের প্রয়োজন হয়। যদিও বর্তমানে কাফকা KRaft mode (Kafka Raft mode) সমর্থন করে, যেখানে Zookeeper প্রয়োজন হয় না, তবে এখানে আমরা Zookeeper ব্যবহার করে একটি সাধারণ কাফকা ক্লাস্টার কনফিগার করব।

Kafka এবং Zookeeper ইনস্টলেশন

  • প্রথমে আপনার সিস্টেমে Kafka এবং Zookeeper ইনস্টল করতে হবে। আপনি নিচের ধাপগুলি অনুসরণ করতে পারেন:
  1. Kafka ডাউনলোড করুন: কাফকা ডাউনলোড করার জন্য Kafka Download Page থেকে সর্বশেষ ভার্সনটি ডাউনলোড করুন।

    wget https://downloads.apache.org/kafka/<version>/kafka_<scala_version>-<version>.tgz
    tar -xvzf kafka_<scala_version>-<version>.tgz
    cd kafka_<scala_version>-<version>
    
  2. Zookeeper ডাউনলোড করুন (যদি Zookeeper ইনস্টল করা না থাকে): আপনি Zookeeper Download Page থেকে Zookeeper ডাউনলোড করে সেটআপ করতে পারেন।

২. Zookeeper কনফিগারেশন

যেহেতু কাফকা একটি ডিসট্রিবিউটেড সিস্টেম, এটি সঠিকভাবে কাজ করতে Zookeeper সার্ভারের সাহায্য নেয়। Zookeeper ব্রোকারদের মধ্যে কোঅর্ডিনেশন এবং ক্লাস্টারের অবস্থান ট্র্যাক করে।

  1. Zookeeper কনফিগারেশন ফাইলটি খোলার জন্য নিচের কমান্ডটি ব্যবহার করুন:

    vim config/zookeeper.properties
    
  2. কনফিগারেশন ফাইলে ডিফল্ট পোর্ট (2181) নিশ্চিত করুন, বা প্রয়োজন অনুযায়ী পরিবর্তন করুন।

    clientPort=2181
    dataDir=/var/lib/zookeeper
    
  3. Zookeeper চালু করুন:

    bin/zookeeper-server-start.sh config/zookeeper.properties
    

৩. Kafka ব্রোকার কনফিগারেশন

কাফকা ব্রোকারের কনফিগারেশন ফাইলটি server.properties এ সংরক্ষিত থাকে। এখানে আপনার কাফকা ব্রোকারের জন্য কয়েকটি গুরুত্বপূর্ণ কনফিগারেশন সেট করতে হবে।

  1. কাফকা কনফিগারেশন ফাইলটি খুলুন:

    vim config/server.properties
    
  2. নিম্নলিখিত কনফিগারেশন সেট করুন:

    • broker.id: এইটি প্রতিটি কাফকা ব্রোকারের ইউনিক আইডি হবে। প্রথম ব্রোকারের জন্য এটি ১ হতে পারে, দ্বিতীয় ব্রোকারের জন্য ২ ইত্যাদি।
    • listeners: কাফকা ব্রোকারটি কোথায় কানেক্ট হবে (পোর্ট 9092 সাধারণত ব্যবহৃত হয়)।
    • zookeeper.connect: এখানে Zookeeper সার্ভারের ঠিকানা এবং পোর্ট উল্লেখ করতে হবে।

    উদাহরণ:

    broker.id=1
    listeners=PLAINTEXT://localhost:9092
    zookeeper.connect=localhost:2181
    log.dirs=/tmp/kafka-logs
    num.partitions=3
    
  3. কাফকা ব্রোকার চালু করুন:

    bin/kafka-server-start.sh config/server.properties
    

৪. Kafka Cluster তৈরি করা

একটি কাফকা ক্লাস্টার তৈরি করার জন্য একাধিক কাফকা ব্রোকার চালাতে হবে। সাধারণত দুটি বা তার বেশি ব্রোকার ব্যবহার করা হয়, যাতে ক্লাস্টারটি স্কেলেবল এবং ফোল্ট-টলারেন্ট থাকে।

নতুন কাফকা ব্রোকার কনফিগারেশন

প্রথম ব্রোকার কনফিগার করার পর, দ্বিতীয় বা তৃতীয় ব্রোকার কনফিগারেশন ফাইলের broker.id এবং zookeeper.connect মান পরিবর্তন করুন। উদাহরণস্বরূপ:

  • Broker 1:

    broker.id=1
    listeners=PLAINTEXT://localhost:9092
    zookeeper.connect=localhost:2181
    
  • Broker 2:

    broker.id=2
    listeners=PLAINTEXT://localhost:9093
    zookeeper.connect=localhost:2181
    
  • Broker 3:

    broker.id=3
    listeners=PLAINTEXT://localhost:9094
    zookeeper.connect=localhost:2181
    

ব্রোকার চালু করা

প্রতিটি ব্রোকারকে আলাদাভাবে চালু করতে হবে:

  • Broker 1:

    bin/kafka-server-start.sh config/server-1.properties
    
  • Broker 2:

    bin/kafka-server-start.sh config/server-2.properties
    
  • Broker 3:

    bin/kafka-server-start.sh config/server-3.properties
    

এভাবে, আপনার কাফকা ক্লাস্টার তৈরি হবে, যেখানে তিনটি ব্রোকার যুক্ত থাকবে। এখন আপনি এই ক্লাস্টারে টপিক তৈরি করতে পারবেন এবং ডেটা পাঠাতে ও গ্রহণ করতে পারবেন।


৫. Kafka Cluster পরীক্ষা করা

ক্লাস্টার তৈরি করার পর, আপনি নিম্নলিখিত কমান্ডের মাধ্যমে কাফকা ক্লাস্টারের অবস্থা পরীক্ষা করতে পারেন:

bin/kafka-topics.sh --zookeeper localhost:2181 --list

এটি আপনার ক্লাস্টারে থাকা টপিকগুলো দেখাবে।


সারাংশ

অ্যাপাচি কাফকা ক্লাস্টার তৈরি করতে, আপনি প্রথমে Zookeeper সার্ভার এবং তারপর কাফকা ব্রোকার কনফিগার করতে হবে। একাধিক ব্রোকার ব্যবহার করার মাধ্যমে একটি কাফকা ক্লাস্টার তৈরি করা যায়, যা স্কেলেবল এবং ফোল্ট টলারেন্ট। এই ক্লাস্টারে আপনি বিভিন্ন টপিক তৈরি করতে পারবেন এবং ডেটা স্ট্রিমিংয়ের জন্য কাফকা ব্যবহৃত হবে।

Content added By

অ্যাপাচি কাফকা (Apache Kafka) এর সাহায্যে প্রথমবারের মতো একটি Kafka Topic তৈরি এবং সেটি দিয়ে ডেটা প্রডিউস (produce) ও কনজিউম (consume) করার প্রক্রিয়া বেশ সরল। এখানে আমরা কাফকায় টপিক তৈরি, মেসেজ প্রডিউস এবং কনজিউম করার জন্য প্রয়োজনীয় পদক্ষেপগুলো আলোচনা করব।


১. Kafka Broker চালু করা

প্রথমে, আপনাকে কাফকা ব্রোকার চালু করতে হবে। যদি আপনি একক কাফকা ব্রোকারে কাজ করছেন, তবে নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করতে পারেন:

  1. Kafka এবং Zookeeper ইনস্টল করা:
    • প্রথমে, Kafka এবং Zookeeper (যা কাফকার ক্লাস্টার ব্যবস্থাপনার জন্য প্রয়োজন) ডাউনলোড ও ইনস্টল করতে হবে।
    • কাফকা ডাউনলোড করতে এখানে যান।
    • Zookeeper চালু করতে:

      bin/zookeeper-server-start.sh config/zookeeper.properties
      
  2. Kafka ব্রোকার চালু করা:

    কাফকা চালু করতে:

    bin/kafka-server-start.sh config/server.properties
    

২. Kafka Topic তৈরি করা

এখন কাফকা টপিক তৈরি করার সময় এসেছে। কাফকা টপিক হলো একটি ডেটা স্টোরেজ ইউনিট যেখানে মেসেজগুলো (বা ইভেন্টগুলো) রাখা হয়। একটি টপিক তৈরি করতে নিচের কমান্ড ব্যবহার করুন:

bin/kafka-topics.sh --create --topic my-first-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

এখানে:

  • --topic: টপিকের নাম (my-first-topic)।
  • --bootstrap-server: কাফকা ব্রোকারের এড্রেস (এখানে localhost:9092 দেওয়া হয়েছে)।
  • --partitions: টপিকের পার্টিশনের সংখ্যা (এখানে ১টি পার্টিশন)।
  • --replication-factor: পার্টিশনের রেপ্লিকা সংখ্যা (এখানে ১টি রেপ্লিকা)।

টপিক তৈরি হয়ে গেলে, আপনি এটি দেখতে পারেন:

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

৩. Data Produce (প্রডিউস করা)

এখন আপনি কাফকা টপিকের মধ্যে ডেটা পাঠাতে পারেন। ডেটা প্রডিউস করার জন্য কাফকা প্রডিউসার ব্যবহার করতে হবে। এটি সাধারণত একটি কমান্ড লাইন টুল বা কোড দ্বারা করা হয়।

একটি সাধারন প্রডিউসার কমান্ড:

bin/kafka-console-producer.sh --topic my-first-topic --bootstrap-server localhost:9092

এটি চালানোর পর, আপনি মেসেজ টাইপ করতে পারবেন। আপনি যে কোন মেসেজ লিখে পাঠাতে পারেন, যেমন:

Hello Kafka!
This is my first message.

এখানে, যেকোনো মেসেজ টাইপ করে আপনি কাফকা টপিকে প্রডিউস করতে পারবেন।


৪. Data Consume (কনজিউম করা)

টপিক থেকে ডেটা কনজিউম করার জন্য কাফকা কনজিউমার ব্যবহার করতে হবে। কনজিউমার টপিক থেকে ডেটা নিয়ে আসে এবং প্রক্রিয়া করে। কাফকা কনজিউমার ব্যবহার করতে নিচের কমান্ডটি চালান:

bin/kafka-console-consumer.sh --topic my-first-topic --bootstrap-server localhost:9092 --from-beginning

এখানে:

  • --from-beginning: টপিকের সমস্ত ডেটা থেকে কনজিউম করতে এটি ব্যবহার করা হয়। যদি আপনি শুধুমাত্র নতুন মেসেজ কনজিউম করতে চান তবে এই অপশনটি বাদ দিতে পারেন।

কনজিউমার চালু হলে, আপনি আপনার প্রডিউস করা মেসেজ দেখতে পাবেন।


৫. Kafka Producer এবং Consumer কোডিং (Java Example)

যদি আপনি কাফকায় কোড দিয়ে প্রডিউস এবং কনজিউম করতে চান, তবে Java ব্যবহার করে নিম্নলিখিত উদাহরণ দেখুন:

Kafka Producer (Java Example):

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.util.Properties;

public class ProducerExample {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9092");
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        KafkaProducer<String, String> producer = new KafkaProducer<>(props);

        ProducerRecord<String, String> record = new ProducerRecord<>("my-first-topic", "key", "Hello Kafka!");
        producer.send(record);

        producer.close();
    }
}

Kafka Consumer (Java Example):

import org.apache.kafka.clients.consumer.KafkaConsumer;
import java.util.Properties;
import java.util.Collections;

public class ConsumerExample {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9092");
        props.put("group.id", "test-group");
        props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

        KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
        consumer.subscribe(Collections.singletonList("my-first-topic"));

        while (true) {
            consumer.poll(100).forEach(record -> {
                System.out.println("Consumed: " + record.value());
            });
        }
    }
}

এই Java কোডে:

  • KafkaProducer: এটি মেসেজ প্রডিউস করে নির্দিষ্ট টপিকে পাঠায়।
  • KafkaConsumer: এটি নির্দিষ্ট টপিক থেকে ডেটা কনজিউম করে এবং প্রিন্ট করে।

সারাংশ

অ্যাপাচি কাফকা দিয়ে প্রথমবারের মতো একটি টপিক তৈরি করা এবং ডেটা প্রডিউস ও কনজিউম করার প্রক্রিয়া সহজ এবং সরল। প্রথমে কাফকা ব্রোকার চালু করতে হবে, তারপর টপিক তৈরি করে সেখানে মেসেজ প্রডিউস এবং কনজিউম করতে হবে। আপনি কাফকা কনসোল প্রডিউসার এবং কনসোল কনজিউমার ব্যবহার করে মেসেজ প্রডিউস ও কনজিউম করতে পারেন, অথবা Java প্রোগ্রামিং ভাষা ব্যবহার করে কোডের মাধ্যমে এ কাজগুলো সম্পন্ন করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...