public static void main(String[] args) throws IOException, ParseException {
    KafkaConsumerHelper helper = new KafkaConsumerHelper(args);
    JavaStreamingContext jssc = null;
    try {
      jssc = helper.createJavaStreamingContext(APP_NAME);
      Utils.consolog("jssc=[" + jssc + "]");

      JavaPairReceiverInputDStream<String, String> messages = helper.createReceiverStream(jssc);
      Utils.consolog("messages=[" + messages + "]");

      countMessagesPerProducer(messages);

      Utils.consolog("start...awaitTermination...    (type 'Q' to finish)");
      helper.startAndWait(jssc);

    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (jssc != null) {
        Utils.consolog("stopping...closing...");
        helper.stopAndClose(jssc);

        System.out.println("~~~~~~~~~~~~~~~~~~~~~~kafkaStream.saveAsHadoopFiles");
      }
      Utils.consolog("~~ DONE ~~");
    }
  }