Java Code Examples for org.apache.samza.operators.MessageStream#mergeAll()
The following examples show how to use
org.apache.samza.operators.MessageStream#mergeAll() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: FlattenPCollectionsTranslator.java From beam with Apache License 2.0 | 6 votes |
private static <T> MessageStream<OpMessage<T>> mergeInputStreams( List<MessageStream<OpMessage<T>>> inputStreams) { if (inputStreams.size() == 1) { return Iterables.getOnlyElement(inputStreams); } final Set<MessageStream<OpMessage<T>>> streamsToMerge = new HashSet<>(); inputStreams.forEach( stream -> { if (!streamsToMerge.add(stream)) { // Merge same streams. Make a copy of the current stream. streamsToMerge.add(stream.map(m -> m)); } }); return MessageStream.mergeAll(streamsToMerge); }
Example 2
Source File: WikipediaApplication.java From samza-hello-samza with Apache License 2.0 | 4 votes |
@Override public void describe(StreamApplicationDescriptor appDescriptor) { Duration windowDuration = appDescriptor.getConfig().containsKey("deploy.test") ? Duration.ofMillis(10) : Duration.ofSeconds(10); // Define a SystemDescriptor for Wikipedia data WikipediaSystemDescriptor wikipediaSystemDescriptor = new WikipediaSystemDescriptor("irc.wikimedia.org", 6667); // Define InputDescriptors for consuming wikipedia data WikipediaInputDescriptor wikipediaInputDescriptor = wikipediaSystemDescriptor .getInputDescriptor("en-wikipedia") .withChannel(WIKIPEDIA_CHANNEL); WikipediaInputDescriptor wiktionaryInputDescriptor = wikipediaSystemDescriptor .getInputDescriptor("en-wiktionary") .withChannel(WIKTIONARY_CHANNEL); WikipediaInputDescriptor wikiNewsInputDescriptor = wikipediaSystemDescriptor .getInputDescriptor("en-wikinews") .withChannel(WIKINEWS_CHANNEL); // Define a system descriptor for Kafka KafkaSystemDescriptor kafkaSystemDescriptor = new KafkaSystemDescriptor("kafka") .withConsumerZkConnect(KAFKA_CONSUMER_ZK_CONNECT) .withProducerBootstrapServers(KAFKA_PRODUCER_BOOTSTRAP_SERVERS) .withDefaultStreamConfigs(KAFKA_DEFAULT_STREAM_CONFIGS); // Define an output descriptor KafkaOutputDescriptor<WikipediaStatsOutput> statsOutputDescriptor = kafkaSystemDescriptor.getOutputDescriptor("wikipedia-stats", new JsonSerdeV2<>(WikipediaStatsOutput.class)); // Set the default system descriptor to Kafka, so that it is used for all // internal resources, e.g., kafka topic for checkpointing, coordinator stream. appDescriptor.withDefaultSystem(kafkaSystemDescriptor); MessageStream<WikipediaFeedEvent> wikipediaEvents = appDescriptor.getInputStream(wikipediaInputDescriptor); MessageStream<WikipediaFeedEvent> wiktionaryEvents = appDescriptor.getInputStream(wiktionaryInputDescriptor); MessageStream<WikipediaFeedEvent> wikiNewsEvents = appDescriptor.getInputStream(wikiNewsInputDescriptor); OutputStream<WikipediaStatsOutput> wikipediaStats = appDescriptor.getOutputStream(statsOutputDescriptor); // Merge inputs MessageStream<WikipediaFeedEvent> allWikipediaEvents = MessageStream.mergeAll(ImmutableList.of(wikipediaEvents, wiktionaryEvents, wikiNewsEvents)); // Parse, update stats, prepare output, and send allWikipediaEvents .map(WikipediaParser::parseEvent) .window(Windows.tumblingWindow(windowDuration, WikipediaStats::new, new WikipediaStatsAggregator(), WikipediaStats.serde()), "statsWindow") .map(this::formatOutput) .sendTo(wikipediaStats); }