MapR Streams doesn’t include a broker that listens on a port. MapR Streams supports the Kafka API, but it doesn’t provide the Kafka wire protocol. Therefore, applications that expect to communicate directly with a Kafka broker on a TCP port will not work.
The MapR client libraries hide the transport, so MapR Streams library users should use the APIs. JVM applications that can use the MapR implementation of the Kafka APIs will work because the MapR implementation ignores the properties for items such as ZooKeeper and bootstrap servers. For example, you might see code written for Kafka that sets up parameters for brokers: val brokers = "…”. The MapR client can do this because, similar to FS and DB, it uses the CLDB to locate the data it needs in the cluster.
For example, you might see Kafka code that sets up parameters for brokers as follows:
val brokers = "myhost:9092" val kafkaParams = Map[String, String]( ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG -> brokers, ConsumerConfig.GROUP_ID_CONFIG -> groupId, ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG -> "org.apache.kafka.common.serialization.StringDeserializer", ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG -> "org.apache.kafka.common.serialization.StringDeserializer", ConsumerConfig.AUTO_OFFSET_RESET_CONFIG -> offsetReset, ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG -> "false", "spark.kafka.poll.time" -> pollTimeout )
In this example, the code works unchanged on both Kafka and Streams, because Streams ignores the bootstrap-related parameter.
MapR Streams Ports
See MapR user documentation for more port information (http://maprdocs.mapr.com/home/ReferenceGuide/MapRPorts.html).
Retrieving data ...