কাফকার 0.8.1.1 এ বিষয় মুছুন


98

আমার testঅ্যাপাচি কাফকার 0.8.1.1 এ বিষয়টি মুছতে হবে ।

এখানে ডকুমেন্টেশনে প্রকাশিত হিসাবে , আমি কার্যকর করেছি:

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic test

তবে, নিম্নলিখিত বার্তায় এর ফলাফল:

Command must include exactly one action: --list, --describe, --create or --alter

আমি কীভাবে এই বিষয়টিকে মুছতে পারি?


ধাপে ধাপে পদ্ধতিটি ব্যাখ্যা করা হয়েছে: স্ট্যাকওভারফ্লো.com
রবীন্দ্র বাবু

উত্তর:


110

বিষয় মোছা সর্বদা 0.8.1.1 এ কাজ করে না

মুছে ফেলা পরবর্তী প্রকাশে কাজ করা উচিত, 0.8.2

kafka-topics.sh --delete --zookeeper localhost:2181 --topic your_topic_name

  Topic your_topic_name is marked for deletion.
  Note: This will have no impact if delete.topic.enable is not set to true.

কোনও বিষয় মুছে ফেলা সম্ভব?

জিরা কাফকা-1397


তথ্যের জন্য ধন্যবাদ। আপনি কি জানেন কীভাবে পুরো কাফকা এবং চিড়িয়াখানার রাজ্যগুলিকে সাফ করবেন?
এমপাক 5

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

95

দেখে মনে হচ্ছে মুছে ফেলা কমান্ডটি কোনও কাফাকা ( https://issues.apache.org/jira/browse/KAFKA-1397 ) কারণে কাফকার 0.8.1.x তে সরকারীভাবে নথিভুক্ত হয়নি ।

তবুও, কমান্ডটি এখনও কোডে পাঠানো হয়েছিল এবং এটি কার্যকর করা যেতে পারে:

bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper localhost:2181 --topic test

এরই মধ্যে, বাগটি ঠিক হয়ে গেছে এবং মুছে ফেলা কমান্ডটি এখন অফিসিয়ালভাবে কাফকার ০.৮.২.০ থেকে উপলব্ধ:

bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test

আমি যা পড়েছি তা থেকে এটি ০.৮.১.১ কাজ করতে পারে, তবে এটি নাও হতে পারে ... ফিক্সটি কিছুক্ষণ থেকেই ট্রাঙ্কের মধ্যে রয়েছে, তাই যদি আপনি সরাসরি ট্রাঙ্ক থেকে উত্সগুলি গ্রহণ করেন, তবে এটি কাজ করা উচিত
স্পেন

আমি মাত্র 0.8.1.1 এ চেষ্টা করেছি, এটি "মোছা সফল হয়েছে" এর প্রতিবেদন করেছে তবে এটি কার্যকর হয়নি। বিষয় এখনও আছে, আমি কোনও গ্রাহককে সংযুক্ত করতে পারি এবং এটি পূর্ববর্তী সমস্ত আইটেমকে মুলতুবি হিসাবে প্রতিবেদন করবে।
এলিয়াস ডরনেলেস

কাফকার 0.8.1.1 এ বিষয়গুলি মোছা কার্যকর হয় না। সম্প্রতি প্রকাশিত সংস্করণ 0.8.2.0 অবশেষে সঠিক মোছার সমর্থন থাকা উচিত। Blog.confluent.io/2014/12/02/whats- आगामी-in-apache-kafka-0-8-2 এ দেখুন ।
মাইকেল জি নোল

বিটিডব্লিউ, মুছে ফেলার বৈশিষ্ট্য.টিক.এনবেবল = সত্যের সার্ভার.প্রোপার্টি ফাইলগুলিতে অবস্থিত। এটি ডিফল্ট হিসাবে মন্তব্য করা হয়।
শ্যানিমিস্টার

38

Below af kafka_home} /config/server.properties এ লাইনের নীচে যুক্ত করুন

delete.topic.enable=true

নতুন কনফিগারেশনের সাহায্যে কাফকা সার্ভারটি পুনরায় চালু করুন:

${kafka_home}/bin/kafka-server-start.sh ~/kafka/config/server.properties

আপনি যে বিষয়গুলি চান তা মুছুন:

${kafka_home}/bin/kafka-topics.sh --delete  --zookeeper localhost:2181  --topic daemon12

10

আন্ড্রেয়া ঠিক আছে। আমরা কমান্ড লাইন ব্যবহার করে এটি করতে পারি।

এবং আমরা এখনও এটি দ্বারা প্রোগ্রাম করতে পারেন

ZkClient zkClient = new ZkClient("localhost:2181", 10000);
zkClient.deleteRecursive(ZkUtils.getTopicPath("test2"));

আসলে আমি আপনাকে কাফকার 0.8.1.1 এ বিষয় মুছে ফেলার প্রস্তাব দিচ্ছি না। আমি এই পদ্ধতিটি দ্বারা এই বিষয়টিকে মুছতে পারি, তবে আপনি চিড়িয়াখানার জন্য লগ চেক করে থাকলে, মুছে ফেলা এলোমেলো করে দেয়।


এর মধ্যে zkClient.deleteRecursive (ZkUtils.getTopicConfigPath ("টেস্ট 2")) অন্তর্ভুক্ত করা উচিত; এবং
সুমিত

@ সুমিত, আর কী? আমি "getTopicConfigPath" ব্যবহার করি নি। আসলে আমি আপনাকে কাফকার 0.8.1.1 এ বিষয় মুছে ফেলার প্রস্তাব দিচ্ছি না। আমি এই পদ্ধতিটি দ্বারা এই বিষয়টিকে মুছতে পারি, তবে আপনি চিড়িয়াখানার জন্য লগ চেক করেন, মুছে ফেলার বিষয়টি গোলমাল করে।
লিয়াং

তবে কাফকা এটিও এটি করে (যেমন আপনি প্রস্তাব করেছিলেন): apache.googles Source.com/kafka/+/0.8.1/core/src/main/scala/kafka/…
সুমিত

@ সুমিত হ্যাঁ, আমি সেখান থেকে কোডটি পেয়েছি। আমি "অগোছালো" জিনিস সম্পর্কে নিশ্চিত নই। কারণ একবার আমি আমার সংস্থার সার্ভারে কোনও বিষয় মুছে ফেললে, মুছে ফেলা চিড়িয়াখানার লগতে প্রচুর জাঙ্ক তৈরি করে। তবে আমি আমার স্থানীয় ক্ষেত্রে এটি পুনরুত্পাদন করতে পারি না। সুতরাং আমি এটি প্রস্তাব দিই না ..
লিয়াং

4

আপনি testচিড়িয়াখানার শেল কমান্ড ( zookeeper-shell.sh) থেকে একটি নির্দিষ্ট কাফকা বিষয় (উদাহরণ :) মুছতে পারেন । বিষয় মুছে ফেলার জন্য নীচের কমান্ডটি ব্যবহার করুন

rmr {path of the topic}

উদাহরণ:

rmr /brokers/topics/test

মুছে ফেলুন.টিক.নেবেল = সত্য, তারপরে কাফকা থেকে মুছুন এবং পরে
চিড়িয়াখানা

4

কাফকার ১ বা একাধিক বিষয় মুছে ফেলার পদক্ষেপ

কাফকার টপিকগুলি মুছতে কাফকা সার্ভারে মুছুন বিকল্পটি সক্ষম করা দরকার।

1. Go to {kafka_home}/config/server.properties
2. Uncomment delete.topic.enable=true

কাফকার একটি বিষয় মুছে ফেলুন নিম্নলিখিত কমান্ডটি প্রবেশ করুন

kafka-topics.sh --delete --zookeeper লোকহোস্ট: 2181 - টপিক

কাফকা থেকে একাধিক বিষয় মুছতে

(পরীক্ষার উদ্দেশ্যে ভাল, যেখানে আমি একাধিক বিষয় তৈরি করেছি এবং বিভিন্ন পরিস্থিতিতে সেগুলি মুছতে হয়েছিল)

  1. কাফকা সার্ভার এবং চিড়িয়াখানা বন্ধ করুন
  2. / টিএমপি ফোল্ডারে যান যেখানে লগগুলি সংরক্ষিত থাকে এবং কাফক্ল্যাজগুলি এবং চিড়িয়াখানা ফোল্ডারটি ম্যানুয়ালি মুছুন
  3. চিড়িয়াখানা ও কাফকা সার্ভারটি পুনরায় চালু করুন এবং বিষয়গুলি তালিকাভুক্ত করার চেষ্টা করুন,

বিন / কাফকা- টপিক্স.শ - তালিকা --জুকিপার লোকালহোস্ট: 2181

যদি কোনও বিষয় তালিকাভুক্ত না করা হয় তবে সমস্ত বিষয় সফলভাবে মুছে ফেলা হয়েছে I যদি বিষয়গুলি তালিকাভুক্ত করা হয়, তবে মোছা সফল হয়নি। উপরের পদক্ষেপগুলি আবার চেষ্টা করুন বা আপনার কম্পিউটার পুনরায় চালু করুন।


নোট করুন যে এই মুহূর্তে সর্বশেষ কাফকা সংস্করণে (1.0.0) সেই বিকল্পটি server.propertiesফাইলটিতে উপস্থিত হবে না । আপনাকে সেই লাইনটি ম্যানুয়ালি যুক্ত করতে হবে।
ডেভিড করাল

@ ডেভিডকোরাল বিষয় মুছে ফেলা ডিফল্টরূপে 1.0.0 এ সক্ষম হয়
ট্যানার

2

এই পদক্ষেপগুলি সমস্ত বিষয় এবং ডেটা মুছে ফেলবে

  • কাফকা-সার্ভার এবং চিড়িয়াখানা-সার্ভার বন্ধ করুন
  • উভয় পরিষেবার tmp ডেটা ডিরেক্টরি মুছে ফেলুন, ডিফল্টরূপে সেগুলি সি: / tmp / কাফকা-লগ এবং সি: / tmp / চিড়িয়াখানা।
  • তারপরে চিড়িয়াখানা-সার্ভার এবং কাফকা-সার্ভার শুরু করুন

2

আদেশ:

bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test

দুর্ভাগ্যক্রমে কেবল মোছার জন্য বিষয় চিহ্নিত করে।

মুছে ফেলা হয় না।

যে কোনও স্ক্রিপ্ট পরীক্ষা করার সময় এটি ঝামেলা তৈরি করে, যা কাফকা কনফিগারেশন প্রস্তুত করে।

সংযুক্ত থ্রেড:


1

উপরের উত্তরে যুক্ত করার সাথে একজনকে চিড়িয়াখানার গ্রাহক অফসেট পথে সেই বিষয়ের সাথে যুক্ত মেটা ডেটা মুছতে হবে।

bin/zookeeper-shell.sh zookeeperhost:port

rmr /consumers/<sample-consumer-1>/offsets/<deleted-topic>

অন্যথায় চিড়িয়াখানার উপর নির্ভর করে কাফকা-পর্যবেক্ষণ সরঞ্জামগুলিতে লেগ নেতিবাচক হবে।


1

এখানে ডক হিসাবে উল্লিখিত

বিষয় মুছে ফেলার বিকল্পটি ডিফল্টরূপে অক্ষম করা হয়। এটি সক্ষম করতে সার্ভার কনফিগারেশন সেট করতে সক্ষম করুন মুছুন.টিক.এনবেবল = সত্য কাফকা বর্তমানে কোনও বিষয়ের পার্টিশনের সংখ্যা হ্রাস করতে বা প্রতিরূপ ফ্যাক্টরটি পরিবর্তন সমর্থন করে না।

নিশ্চিত করুন মুছে ফেলুন.টিক.অনেবল = সত্য


আমি বিশ্বাস করি যে বিকল্পটি কেবল 8.2
স্পুডার


0

আপনার যদি বিষয়গুলি মুছে ফেলার সমস্যা হয়, তবে বিষয়টি মুছে ফেলার চেষ্টা করুন:

$KAFKA_HOME/bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic your_topic_name

আদেশ তারপরে মুছে ফেলার প্রক্রিয়াটি যাচাই করতে, কাফকা লগ ডিরেক্টরিতে যান যা সাধারণত নীচে রাখা হয় /tmp/kafka-logs/, তারপরে কমান্ডের your_topic_nameমাধ্যমে ফাইলটি মুছুন rm -rf your_topic_name

মত একটি কাফকা ম্যানেজমেন্ট টুল মাধ্যমে পুরো প্রক্রিয়া পর্যবেক্ষণ করতে মনে রাখুন Kafka Tool

উপরে উল্লিখিত প্রক্রিয়াটি কাফকা সার্ভার পুনরায় আরম্ভ না করে বিষয়গুলি সরিয়ে ফেলবে।


0

পদক্ষেপ 1: নিশ্চিত করুন যে আপনি চিড়িয়াখানা এবং কাফকার সাথে সংযুক্ত রয়েছেন

পদক্ষেপ 2: কাফকা টপিকটি মুছে ফেলতে কাফকা-টপিক (ম্যাক) বা কাফকা-টপিক.শ চালান যদি ব্যবহার করা হয় (লিনাক্স / ম্যাক) আপনার বিষয়ের নামের সাথে পোর্ট এবং - টপিক যুক্ত করুন এবং - এটি মুছে ফেলুন কেবল বিষয়টির সাথে মুছে ফেলুন সাফল্য

# Delete the kafka topic
# it will delete the kafka topic
kafka-topics --zookeeper 127.0.0.1:2181 --topic name_of_topic --delete
# or
kafka-topics.sh --zookeeper 127.0.0.1:2181 --topic name_of_topic --delete

0

প্রথমে, আপনি আপনার বিষয় মুছে ফেলার জন্য এই আদেশটি চালাচ্ছেন:

$ bin/kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic <topic_name>

সম্পূর্ণ মোছা চেক করতে সক্রিয় বিষয়গুলি তালিকাবদ্ধ করুন:

$ bin/kafka-topics.sh --list --bootstrap-server localhost:9092
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.