public static void main(String[] args) throws Exception {
CommandLine commandLine = parseCommandLine(args);
String zookeeper = commandLine.getOptionValue(ZOOKEEPER);
ZkUtils zkUtils = KafkaUtils.getZkUtils(zookeeper);
Seq<String> topicsSeq = zkUtils.getAllTopics();
List<String> topics = scala.collection.JavaConverters.seqAsJavaList(topicsSeq);
scala.collection.mutable.Map<String, scala.collection.Map<Object, Seq<Object>>>
partitionAssignments = zkUtils.getPartitionAssignmentForTopics(topicsSeq);
Map<String, Integer> replicationFactors = new HashMap<>();
Map<String, Integer> partitionCounts = new HashMap<>();
topics.stream().forEach(topic -> {
int partitionCount = partitionAssignments.get(topic).get().size();
int factor = partitionAssignments.get(topic).get().head()._2().size();
partitionCounts.put(topic, partitionCount);
replicationFactors.put(topic, factor);
});
List<PartitionInfo> urps = KafkaClusterManager.getUnderReplicatedPartitions(
zookeeper, SecurityProtocol.PLAINTEXT, null, topics, partitionAssignments, replicationFactors, partitionCounts);
for (PartitionInfo partitionInfo : urps) {
LOG.info("under-replicated : {}", partitionInfo);
}
}
}