Book Image

Practical Real-time Data Processing and Analytics

Book Image

Practical Real-time Data Processing and Analytics

Overview of this book

With the rise of Big Data, there is an increasing need to process large amounts of data continuously, with a shorter turnaround time. Real-time data processing involves continuous input, processing and output of data, with the condition that the time required for processing is as short as possible. This book covers the majority of the existing and evolving open source technology stack for real-time processing and analytics. You will get to know about all the real-time solution aspects, from the source to the presentation to persistence. Through this practical book, you’ll be equipped with a clear understanding of how to solve challenges on your own. We’ll cover topics such as how to set up components, basic executions, integrations, advanced use cases, alerts, and monitoring. You’ll be exposed to the popular tools used in real-time processing today such as Apache Spark, Apache Flink, and Storm. Finally, you will put your knowledge to practical use by implementing all of the techniques in the form of a practical, real-world use case. By the end of this book, you will have a solid understanding of all the aspects of real-time data processing and analytics, and will know how to deploy the solutions in production environments in the best possible manner.
Table of Contents (20 chapters)
Title Page
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface

Basic Storm Trident topology


Here, in basic Storm Trident topology we will go through a word count example. More examples will be explained later in the chapter. This is the code for the example:

FixedBatchSpout spout = new FixedBatchSpout(new Fields("sentence"), 3,
new Values("this is simple example of trident topology"),
new Values("this example count same words"));
spout.setCycle(true); // Line 1
TridentTopology topology = new TridentTopology(); // Line 2
MemoryMapState.Factory stateFactory = new MemoryMapState.Factory(); // Line 3
topology.newStream("spout1", spout) // Line 4
.each(new Fields("sentence"), new Split(), new Fields("word")) // Line 5
.groupBy(new Fields("word")) // Line 6
.persistentAggregate(stateFactory, new Count(), new Fields("count")).newValuesStream() // Line 7
.filter(new DisplayOutputFilter()) // Line 8
.parallelismHint(6); // Line 9
Config config = new Config(); // Line 10
config.setNumWorkers(3); // Line 11
LocalCluster cluster = new LocalCluster(); // Line 12...