Checking the existence of topic in kafka before creating in Java












4














I am trying to create a topic in kafka 0.8.2 by using :



AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties);


If I run the code more than once locally for testing, this fails as the topic was already created. Is there a way to check if the topic exists before creating the topic? The TopicCommand api doesn't seem to return anything for listTopics or describeTopic
.










share|improve this question





























    4














    I am trying to create a topic in kafka 0.8.2 by using :



    AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties);


    If I run the code more than once locally for testing, this fails as the topic was already created. Is there a way to check if the topic exists before creating the topic? The TopicCommand api doesn't seem to return anything for listTopics or describeTopic
    .










    share|improve this question



























      4












      4








      4


      3





      I am trying to create a topic in kafka 0.8.2 by using :



      AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties);


      If I run the code more than once locally for testing, this fails as the topic was already created. Is there a way to check if the topic exists before creating the topic? The TopicCommand api doesn't seem to return anything for listTopics or describeTopic
      .










      share|improve this question















      I am trying to create a topic in kafka 0.8.2 by using :



      AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties);


      If I run the code more than once locally for testing, this fails as the topic was already created. Is there a way to check if the topic exists before creating the topic? The TopicCommand api doesn't seem to return anything for listTopics or describeTopic
      .







      java apache-kafka






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jul 24 '18 at 7:34









      Nicolas Filotto

      32.7k84672




      32.7k84672










      asked Jun 1 '15 at 11:12









      nishantvnishantv

      2042722




      2042722
























          2 Answers
          2






          active

          oldest

          votes


















          4














          For this purpose, you can use the method AdminUtils.topicExists(ZkUtils zkClient, String topic), it will return true if the topic already exists, false otherwise.



          Your code would then be something like this:



          if (!AdminUtils.topicExists(zkClient, myTopic)){
          AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties);
          }





          share|improve this answer































            2














            You can use AdminClient from kakfa-client version 0.11.0.0



            Sample code:



                Properties config = new Properties();
            config.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhist:9091");

            AdminClient admin = AdminClient.create(config);
            ListTopicsResult listTopics = admin.listTopics();
            Set<String> names = listTopics.names().get();
            boolean contains = names.contains("TEST_6");
            if (!contains) {
            List<NewTopic> topicList = new ArrayList<NewTopic>();
            Map<String, String> configs = new HashMap<String, String>();
            int partitions = 5;
            Short replication = 1;
            NewTopic newTopic = new NewTopic("TEST_6", partitions, replication).configs(configs);
            topicList.add(newTopic);
            admin.createTopics(topicList);
            }





            share|improve this answer























              Your Answer






              StackExchange.ifUsing("editor", function () {
              StackExchange.using("externalEditor", function () {
              StackExchange.using("snippets", function () {
              StackExchange.snippets.init();
              });
              });
              }, "code-snippets");

              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "1"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f30572023%2fchecking-the-existence-of-topic-in-kafka-before-creating-in-java%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              4














              For this purpose, you can use the method AdminUtils.topicExists(ZkUtils zkClient, String topic), it will return true if the topic already exists, false otherwise.



              Your code would then be something like this:



              if (!AdminUtils.topicExists(zkClient, myTopic)){
              AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties);
              }





              share|improve this answer




























                4














                For this purpose, you can use the method AdminUtils.topicExists(ZkUtils zkClient, String topic), it will return true if the topic already exists, false otherwise.



                Your code would then be something like this:



                if (!AdminUtils.topicExists(zkClient, myTopic)){
                AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties);
                }





                share|improve this answer


























                  4












                  4








                  4






                  For this purpose, you can use the method AdminUtils.topicExists(ZkUtils zkClient, String topic), it will return true if the topic already exists, false otherwise.



                  Your code would then be something like this:



                  if (!AdminUtils.topicExists(zkClient, myTopic)){
                  AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties);
                  }





                  share|improve this answer














                  For this purpose, you can use the method AdminUtils.topicExists(ZkUtils zkClient, String topic), it will return true if the topic already exists, false otherwise.



                  Your code would then be something like this:



                  if (!AdminUtils.topicExists(zkClient, myTopic)){
                  AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties);
                  }






                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Jul 24 '18 at 11:41









                  Nicolas Filotto

                  32.7k84672




                  32.7k84672










                  answered Jun 2 '15 at 15:15









                  C4storC4stor

                  6,11032138




                  6,11032138

























                      2














                      You can use AdminClient from kakfa-client version 0.11.0.0



                      Sample code:



                          Properties config = new Properties();
                      config.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhist:9091");

                      AdminClient admin = AdminClient.create(config);
                      ListTopicsResult listTopics = admin.listTopics();
                      Set<String> names = listTopics.names().get();
                      boolean contains = names.contains("TEST_6");
                      if (!contains) {
                      List<NewTopic> topicList = new ArrayList<NewTopic>();
                      Map<String, String> configs = new HashMap<String, String>();
                      int partitions = 5;
                      Short replication = 1;
                      NewTopic newTopic = new NewTopic("TEST_6", partitions, replication).configs(configs);
                      topicList.add(newTopic);
                      admin.createTopics(topicList);
                      }





                      share|improve this answer




























                        2














                        You can use AdminClient from kakfa-client version 0.11.0.0



                        Sample code:



                            Properties config = new Properties();
                        config.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhist:9091");

                        AdminClient admin = AdminClient.create(config);
                        ListTopicsResult listTopics = admin.listTopics();
                        Set<String> names = listTopics.names().get();
                        boolean contains = names.contains("TEST_6");
                        if (!contains) {
                        List<NewTopic> topicList = new ArrayList<NewTopic>();
                        Map<String, String> configs = new HashMap<String, String>();
                        int partitions = 5;
                        Short replication = 1;
                        NewTopic newTopic = new NewTopic("TEST_6", partitions, replication).configs(configs);
                        topicList.add(newTopic);
                        admin.createTopics(topicList);
                        }





                        share|improve this answer


























                          2












                          2








                          2






                          You can use AdminClient from kakfa-client version 0.11.0.0



                          Sample code:



                              Properties config = new Properties();
                          config.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhist:9091");

                          AdminClient admin = AdminClient.create(config);
                          ListTopicsResult listTopics = admin.listTopics();
                          Set<String> names = listTopics.names().get();
                          boolean contains = names.contains("TEST_6");
                          if (!contains) {
                          List<NewTopic> topicList = new ArrayList<NewTopic>();
                          Map<String, String> configs = new HashMap<String, String>();
                          int partitions = 5;
                          Short replication = 1;
                          NewTopic newTopic = new NewTopic("TEST_6", partitions, replication).configs(configs);
                          topicList.add(newTopic);
                          admin.createTopics(topicList);
                          }





                          share|improve this answer














                          You can use AdminClient from kakfa-client version 0.11.0.0



                          Sample code:



                              Properties config = new Properties();
                          config.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhist:9091");

                          AdminClient admin = AdminClient.create(config);
                          ListTopicsResult listTopics = admin.listTopics();
                          Set<String> names = listTopics.names().get();
                          boolean contains = names.contains("TEST_6");
                          if (!contains) {
                          List<NewTopic> topicList = new ArrayList<NewTopic>();
                          Map<String, String> configs = new HashMap<String, String>();
                          int partitions = 5;
                          Short replication = 1;
                          NewTopic newTopic = new NewTopic("TEST_6", partitions, replication).configs(configs);
                          topicList.add(newTopic);
                          admin.createTopics(topicList);
                          }






                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited Nov 23 '18 at 8:58

























                          answered Nov 23 '18 at 7:39









                          Raghava ReddyRaghava Reddy

                          215




                          215






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.





                              Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                              Please pay close attention to the following guidance:


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f30572023%2fchecking-the-existence-of-topic-in-kafka-before-creating-in-java%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Berounka

                              Sphinx de Gizeh

                              Different font size/position of beamer's navigation symbols template's content depending on regular/plain...