Kafka क्लस्टर बनाना और मैनेज करना

Apache Kafka परिचय

Mike Metzger

Data Engineering Consultant

ZooKeeper क्या है?

  • ZooKeeper एक फ्रेमवर्क है जो डिस्ट्रिब्यूटेड सिस्टम चलाने के लिए ज़रूरी जानकारी मैनेज करता है और सेवाएँ देता है
  • मुख्यतः डेवलपर्स डिस्ट्रिब्यूटेड ऐप्लिकेशन बनाने के लिए उपयोग करते हैं
    • यूज़र ZooKeeper से इंटरैक्ट करते हैं
  • उदाहरण ऐप्लिकेशन
    • Kafka
    • Hadoop
    • Neo4j

Apache ZooKeeper लोगो

Apache Kafka परिचय

ZooKeeper क्या करता है?

  • ZooKeeper डिस्ट्रिब्यूटेड ऐप्लिकेशन चलाने के लिए ज़रूरी सेवाएँ देता है
    • कॉन्फ़िगरेशन हैंडलिंग
    • सिस्टम नेमिंग
    • सिस्टमों के बीच सिंक्रोनाइज़ेशन
    • सिस्टमों के समूह के लिए आवश्यक सेवाएँ
  • इसे ऐसा फ्रेमवर्क बनाया गया है कि अलग-अलग ऐप्लिकेशन अपनी कस्टम सेवाएँ न बनानी पड़ें।
    • जैसे कोई कॉमन कनेक्टर: पावर प्लग या होज़ नोज़ल
Apache Kafka परिचय

ZooKeeper और Kafka

  • Kafka क्लस्टर मैनेजमेंट के लिए ZooKeeper का उपयोग करता है
    • Kafka के नए वर्ज़न KRaft भी उपयोग कर सकते हैं
  • दो फ़ाइलें उपयोग होती हैं
    • config/zookeeper.properties
    • config/server.properties
# zookeeper.properties

# The directory where the 
# snapshot is stored.
dataDir=/tmp/zookeeper

# The port at which the clients 
# will connect
clientPort=2181

...
Apache Kafka परिचय

config/server.properties

  • खास Kafka कॉन्फ़िगरेशन हैंडल करता है
    • ब्रॉकर विवरण
    • नेटवर्क कॉन्फ़िगरेशन
    • इवेंट स्टोरेज लोकेशन
    • बेसिक टॉपिक कॉन्फ़िगरेशन, जैसे रेप्लिकेशन
...
# A comma separated list of directories under which to store log files
log.dirs=/tmp/kafka-logs
# The default number of log partitions per topic.
num.partitions=1
Apache Kafka परिचय

Kafka क्लस्टर शुरू करना

  • Kafka क्लस्टर दो चरणों में स्टार्ट होते हैं
$ bin/zookeeper-server-start.sh config/zookeeper.properties
...
INFO   ______                  _                                           (org.apache.zookeeper.server.ZooKeeperServer)
INFO  |___  /                 | |                                          (org.apache.zookeeper.server.ZooKeeperServer)
INFO     / /    ___     ___   | | __   ___    ___   _ __     ___   _ __    (org.apache.zookeeper.server.ZooKeeperServer)
INFO    / /    / _ \   / _ \  | |/ /  / _ \  / _ \ | '_ \   / _ \ | '__| (org.apache.zookeeper.server.ZooKeeperServer)
INFO   / /__  | (_) | | (_) | |   <  |  __/ |  __/ | |_) | |  __/ | |     (org.apache.zookeeper.server.ZooKeeperServer)
INFO  /_____|  \___/   \___/  |_|\_\  \___|  \___| | .__/   \___| |_| (org.apache.zookeeper.server.ZooKeeperServer)
INFO                                               | |                      (org.apache.zookeeper.server.ZooKeeperServer)
INFO                                               |_|                      (org.apache.zookeeper.server.ZooKeeperServer)
INFO  (org.apache.zookeeper.server.ZooKeeperServer)
...
Apache Kafka परिचय

Kafka क्लस्टर शुरू करना (जारी)

$ bin/kafka-server-start.sh config/server.properties
INFO Awaiting socket connections on 0.0.0.0:9092. (kafka.network.DataPlaneAcceptor)
INFO Kafka version: 3.7.0 (org.apache.kafka.common.utils.AppInfoParser)
INFO Kafka commitId: 2ae524ed625438c5 (org.apache.kafka.common.utils.AppInfoParser)
INFO Kafka startTimeMs: 1717502877829 (org.apache.kafka.common.utils.AppInfoParser)
INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
INFO [zk-broker-0-to-controller-forwarding-channel-manager]: Recorded new controller, 
     from now on will use node 815f25786085:9092 (id: 0 ra
Apache Kafka परिचय

Kafka क्लस्टर बंद करना

  • bin/kafka-server-stop.sh
  • bin/zookeeper-server-stop.sh
  • शटडाउन का उल्टा क्रम नोट करें
Apache Kafka परिचय

अभ्यास करते हैं!

Apache Kafka परिचय

Preparing Video For Download...