quais são as diferenças entre os fluxos kafka e mapr da perspectiva de codificação?

Quais são as diferenças entre os fluxos de Kafka e mapr da perspectiva de codificação?. Eu preciso implementar os fluxos mapr no futuro, mas atualmente Eu só tenho acesso a kafka então explorar o kafka agora é útil ? para que possa facilmente apanhar os fluxos mapr assim que tiver acesso?

Author: Community, 2016-09-01

2 answers

Como tal, não há grande diferença na API de fluxo de Kafka e MapR em termos de codificação.

Mas existem algumas diferenças em termos de configuração e argumentos da API:

  1. o Kafka suporta O receptor e directamente ambas as abordagens, mas o fluxo de MapR suporta apenas a aproximaçãodirecta .
  2. o valor de configuração de reposição offset para ler os dados desde o início, é o menor no Kafka, mas no fluxo de MapR é mais cedo .
  3. a API do Kafka suporta para passar os argumentos de deserialização da chave e do valor no método, mas na API de fluxo do MapR terá de os Configurar no mapa do Kafka params contra a tecla .valor do deserializador e .chaves do desertor.

Exemplo de abordagem directa para a API do fluxo de Kafka e MapR chama para receber o fluxo de DStream:

Kafka API:

// setting the topic.
HashSet<String> topicsSet = new HashSet<String>(Arrays.asList("myTopic"));

// setting the broker list.
Map<String, String> kafkaParams = new HashMap<String, String>();
kafkaParams.put("metadata.broker.list", "localhost:9092");

// To read the messages from start.
kafkaParams.put("auto.offset.reset", "smallest");

// creating the DStream
JavaPairInputDStream<byte[], byte[]> kafkaStream = KafkaUtils.createDirectStream(streamingContext, byte[].class, byte[].class, DefaultDecoder.class, DefaultDecoder.class, kafkaParams, topicsSet);

API de transmissão MapR:

// setting the topic.
HashSet<String> topicsSet = new HashSet<String>(Arrays.asList("myTopic"));

// setting the broker list.
Map<String, String> kafkaParams = new HashMap<String, String>(); 
kafkaParams.put("metadata.broker.list", "localhost:9092"); 

// To read the messages from start.
kafkaParams.put("auto.offset.reset", "earliest");

// setting up the key and value deserializer
kafkaParams.put("key.deserializer", StringDeserializer.class.getName());
kafkaParams.put("value.deserializer", ByteArrayDeserializer.class.getName()); 

// creating the DStream
JavaPairInputDStream<byte[], byte[]> kafkaStream = KafkaUtils.createDirectStream(streamingContext, byte[].class, byte[].class, kafkaParams, topicsSet);

Espero que a explicação acima ajudá-lo a compreender as diferenças entre o Kafka e o MapR Stream API.

Obrigado. Hokam
www.streamanalytix.com
 2
Author: Hokam, 2016-09-02 04:11:22

Eu não usei fluxos MapR (uma vez que não é de código aberto), mas meu entendimento é que eles clonaram a API Kafka 0.9 Java. Então, se você está usando clientes Kafka 0.9, deve ser bastante semelhante (mas você precisa usar o cliente deles, não o Apache).

Além disso, note que os clientes noutras línguas não estarão disponíveis. E outros projetos Apache que usam APIs diferentes (notavelmente Spark Streaming) necessitarão de Versões especiais compatíveis com MapR.

 2
Author: Gwen Shapira, 2016-09-02 00:54:11