SlideShare a Scribd company logo
1 of 63
Download to read offline
PrashanthBabuV V
@P7h
https://twitter.com/P7h
https://github.com/P7h
http://P7h.org
http://about.me/Prashanth
Laptop with anyOS
JDK v7.x installed
Mavenv3.0.5+ installed
IDE[either Eclipse with m2eclipse plugin or IntelliJ IDEA]
CreatedTwitter app for retrieving tweets
Cloned ordownloaded Storm Projectsfrom my GitHub Account:
 https://github.com/P7h/StormWordCount
 https://github.com/P7h/StormTweetsWordCount
Prerequisites for Workshop
Big Data
Batchvs. Real-time processing
Intro to Storm
CompaniesusingStorm
Storm Dependencies
Storm Concepts
Anatomyof Storm Cluster
Live codinga use caseusingStormTopology
Storm vs. Hadoop
Ag e n d a
Dataoverload everysecond
Batch vs. Real-time Processing
Batch processing
 Gatheringof dataand processingas a group at one time.
Real-time processing
 Processingof datathat takes place as theinformation is being entered.
Event Processing
Simple Event Processing
 Actingon a single event,filter in theESP
Event Stream Processing
 Looking across multiple events
Complex Event Processing
 Looking across multiple eventsfrom multipleevent streams
Storm
Createdby Nathan Marz @BackType
 Analyzetweets, links,users on Twitter
Open sourced on 19th September, 2011
 EclipsePublic License 1.0
 Stormv0.5.2
 16k Java and 7k Clojure LOC
Latest Updates
 Currentstable release v0.8.2released on 11th January,2013
 Major core improvementsplanned for v0.9.0
 Stormwill be anApacheProject [soon..]
Storm
Open source distributedreal-time computation system
Hadoop of real-time
Fast
Scalable
Fault-tolerant
Guarantees datawill be processed
Programminglanguage agnostic
Easyto set up and operate
Excellent documentation
Polyglotism(language agnostic) – Clojure,Java, Python, Ruby, PHP,
Perl,… and yes, evenJavaScript
https://github.com/nathanmarz/storm-starter/blob/master/multilang/resources/splitsentence.py
https://github.com/nathanmarz/storm-starter/blob/master/multilang/resources/splitsentence.rb
Real-time analytics
Stream processing
Online machine learning
Continuous computation
Distributed RPC
Extract,Transform and Load (ETL)
Use cases
http://tweitgeist.colinsurprenant.com/
https://github.com/nathanmarz/storm/wiki/Powered-By
CompaniesusingStorm
enables the
convergenceof Big Data and
low-latency processing.
Empowers stream / micro-batch
processing of user events,
content feeds and application
logs.
https://github.com/P7h/storm-camel-example
Clojure
 a dialect of the Lisp programminglanguagerunson the JVM, CLR, andJavaScript engines
ApacheThrift
 Cross languagebridge,RPC; Frameworktobuild services
ØMQ
 Asynchronous messagetransportlayer
Jetty
 Embeddedweb server
Stormunderthe hood
Stormunderthe hood
ApacheZooKeeper
 Distributed system, used to store metadata
LMAX Disruptor
 High performancequeuesharedbythreads
Kryo
 Serializationframework
Misc.
 SLF4J,Python, Java 5+,JZMQ, JODA,Guava
Tuples
Main data structure in Storm.
An ordered list of objects.
 (“user”, “Prashanth”, “Babu”, “Engineer”, “Bangalore“)
Key-valuepairs – keys are strings, values canbe of anytype.
Tuple
Streams
Unbounded sequence of tuples.
Edges in the topology.
Defined with a schema.
Tuple
Tuple
Tuple
Tuple
Tuple
Spouts
Source of streams.
Spouts are like sourcesin a graph.
Examples are API Calls, log files,
event data,queues, Kestrel,AMQP,
JMS, Kafka, etc.
BaseRichSpout
Bolts
Processinput streams and [might] produce new streams.
Can do anything i.e. filtering, streaming joins, aggregations,readfrom
/ write to databases, APIs, run arbitraryfunctions, etc.
All sinks in the topology are bolts but not all bolts are sinks.
Tuple Tuple Tuple
Bolts
Topology
Networkof spouts and bolts.
Can be visualized like a graph.
Container for application logic.
Analogous to a MapReduce job. But runs forever.
Sample Topology
[Sentence]
[Word, Count]
[Sentence]
RandomSentenceSpout
SplitSentenceBolt
SplitSentenceBolt
WordCountBolt
DBBolt /
JMSBolt
…………..
More such
bolts
RandomSentenceSpout
https://github.com/P7h/StormWordCount
Stream Groupings
Each Spout or Bolt might be running n instances in parallel[tasks].
Groupings are used to decide which task in the subscribing bolt, the
tuple is sent to.
Grouping Feature
Shuffle Randomgrouping
Fields Groupedby valuesuch that equal valueresults in sametask
All Replicates to all tasks
Global Makesall tuples goto one task
None MakesBolt run in the samethread as the Bolt / Spout it subscribesto
Direct Producer(task that emits) controls which Consumerwill receive
Local or Shuffle If the targetbolt has one or moretasks in the sameworkerprocess,
tuples will be shuffled to just those in-process tasks
Storm Cluster
NIMBUS
ZooKeeper#1
ZooKeeper#2
ZooKeeper#n
Supervisor#1
Supervisor#2
Supervisor#3
Supervisor#n
UI
Workers
Workers
Workers
Workers
Storm Cluster
Nimbus daemon is the masterof this cluster.
 Managestopologies.
 Comparable to HadoopJobTracker.
Supervisor daemon spawns workers.
 Comparable to HadoopTaskTracker.
Workersare spawned bysupervisors.
 One per port defined in storm.yaml configuration.
Storm Cluster [contd..]
Task is run as a thread in workers.
Zookeeperis a distributed system, used to store metadata.
UI is a webapp which gives diagnostics on the cluster and topologies.
Nimbus and Supervisor daemons are fail-fast and stateless.
 State is storedin Zookeeper.
Storm – Modes of operation
Localmode
 Develop,test and debug topologies onyour localmachine.
 Mavenis used to include Storm asa dev dependency for the project.
mvn clean compile package && java -jar target/storm-wordcount-1.0-SNAPSHOT-jar-
with-dependencies.jar
Remote [or Production]mode
 Topologies are submitted for executionon a clusterof machines.
 Cluster information is added in storm.yaml file.
 More details on storm.yaml file canbe found here:
https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster#fill-in-mandatory-configurations-
into-stormyaml
storm jar target/storm-wordcount-1.0-SNAPSHOT.jar
org.p7h.storm.offline.wordcount.topology.WordCountTopology WordCount
Storm – Modes of operation [contd..]
StormUI – ClusterSummary
StormUI – TopologySummary
StormUI – ComponentSummary
Code Sample – Topology
Code Sample– Spout
Code Sample– Bolt#1
Code Sample– Bolt#2
Problem#1 – WordCount [if there are internetissues]
Create a Spout which feeds randomsentences [you can define your own
set of randomsentences].
Create a Bolt which receivessentencesfrom the Spout and then splits
them into words and forwardsthem to next bolt.
Create another Bolt to count the words.
https://github.com/P7h/StormWordCount
Create a Spout which gets data from Twitter [please use Twitter4Jand
OAUTH Credentials to get tweets using Streaming API].
 Forsimplicity consideronly tweets which arein English.
 Emit only the stuff which we areinterested,i.e.A tweet’s getRetweetedStatus().
Create another Bolt to count the count the retweetsof a particular
tweet.
 Makean in-memoryMapwith retweetscreen name andthe counterof the retweet asthe
value.
 Logthe counterevery few seconds / minutes [should be configurable].
https://github.com/P7h/StormTopRetweets
Problem#2 – Top5 retweetedtweets[if internetworks fine]
Storm vs. Hadoop
Batch processing
Jobs runto completion
[Pre-YARN]NameNode is SPOF
Statefulnodes
Scalable
Guarantees nodata loss
Open source
Real-time processing
Topologies run forever
No SPOF
Stateless nodes
Scalable
Gurantees nodataloss
Open source
t
now
Hadoop works great back here Stormworks here
Hadoop AND Storm
Blended
view
Blended
view
Blended View
Convergenceofbatchand low-latencyprocessing
PersonalizationbasedonUserInterests
HadoopAND Stormat Yahoo
Advanced Topics [not covered in this session]
Distributed RPC
Transactional topologies
Trident
Unit testing
Patterns
References
This Slide deck[on slideshare] – http://j.mp/5thEleStorm_SS
This Slide deck[on speakerdeck] – http://j.mp/5thEleStorm_SD
MyGitHub Account for code repos – https://github.com/P7h
Bit.ly Bundle for Storm curatedby me – http://j.mp/YrDgcs
PrashanthBabuV V
Follow me on Twitter: @P7h

More Related Content

What's hot

Data analytics in the cloud with Jupyter notebooks.
Data analytics in the cloud with Jupyter notebooks.Data analytics in the cloud with Jupyter notebooks.
Data analytics in the cloud with Jupyter notebooks.Graham Dumpleton
 
Tracing python applications
Tracing python applicationsTracing python applications
Tracing python applicationsNikolay Stoitsev
 
Introduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksIntroduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksEueung Mulyana
 
Threading Successes 04 Hellgate
Threading Successes 04   HellgateThreading Successes 04   Hellgate
Threading Successes 04 Hellgateguest40fc7cd
 
Interactive Data Analysis for End Users on HN Science Cloud
Interactive Data Analysis for End Users on HN Science CloudInteractive Data Analysis for End Users on HN Science Cloud
Interactive Data Analysis for End Users on HN Science CloudHelix Nebula The Science Cloud
 

What's hot (8)

Data analytics in the cloud with Jupyter notebooks.
Data analytics in the cloud with Jupyter notebooks.Data analytics in the cloud with Jupyter notebooks.
Data analytics in the cloud with Jupyter notebooks.
 
[BGOUG] Java GC - Friend or Foe
[BGOUG] Java GC - Friend or Foe[BGOUG] Java GC - Friend or Foe
[BGOUG] Java GC - Friend or Foe
 
Tracing python applications
Tracing python applicationsTracing python applications
Tracing python applications
 
Juggva cloud
Juggva cloudJuggva cloud
Juggva cloud
 
Introduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksIntroduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter Notebooks
 
Sneaky computation
Sneaky computationSneaky computation
Sneaky computation
 
Threading Successes 04 Hellgate
Threading Successes 04   HellgateThreading Successes 04   Hellgate
Threading Successes 04 Hellgate
 
Interactive Data Analysis for End Users on HN Science Cloud
Interactive Data Analysis for End Users on HN Science CloudInteractive Data Analysis for End Users on HN Science Cloud
Interactive Data Analysis for End Users on HN Science Cloud
 

Similar to Storm @ Fifth Elephant 2013

Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...Folio3 Software
 
Introduction to Streaming Distributed Processing with Storm
Introduction to Streaming Distributed Processing with StormIntroduction to Streaming Distributed Processing with Storm
Introduction to Streaming Distributed Processing with StormBrandon O'Brien
 
Distributed Realtime Computation using Apache Storm
Distributed Realtime Computation using Apache StormDistributed Realtime Computation using Apache Storm
Distributed Realtime Computation using Apache Stormthe100rabh
 
C*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with StormC*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with StormDataStax
 
Monitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapMonitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapPadraig O'Sullivan
 
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...DynamicInfraDays
 
Real time stream processing presentation at General Assemb.ly
Real time stream processing presentation at General Assemb.lyReal time stream processing presentation at General Assemb.ly
Real time stream processing presentation at General Assemb.lyVarun Vijayaraghavan
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operationsgrim_radical
 
Introduction to apache_cassandra_for_developers-lhg
Introduction to apache_cassandra_for_developers-lhgIntroduction to apache_cassandra_for_developers-lhg
Introduction to apache_cassandra_for_developers-lhgzznate
 
Confitura 2018 — Apache Beam — Promyk Nadziei Data Engineera
Confitura 2018 — Apache Beam — Promyk Nadziei Data EngineeraConfitura 2018 — Apache Beam — Promyk Nadziei Data Engineera
Confitura 2018 — Apache Beam — Promyk Nadziei Data EngineeraPiotr Wikiel
 
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...Codemotion
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developerPaul Czarkowski
 
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...Jason Dai
 
Porting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustPorting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustEvan Chan
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Baruch Sadogursky
 
Apache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing dataApache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing dataDataWorks Summit/Hadoop Summit
 
Ultra Fast Deep Learning in Hybrid Cloud using Intel Analytics Zoo & Alluxio
Ultra Fast Deep Learning in Hybrid Cloud using Intel Analytics Zoo & AlluxioUltra Fast Deep Learning in Hybrid Cloud using Intel Analytics Zoo & Alluxio
Ultra Fast Deep Learning in Hybrid Cloud using Intel Analytics Zoo & AlluxioAlluxio, Inc.
 

Similar to Storm @ Fifth Elephant 2013 (20)

Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
 
Introduction to Streaming Distributed Processing with Storm
Introduction to Streaming Distributed Processing with StormIntroduction to Streaming Distributed Processing with Storm
Introduction to Streaming Distributed Processing with Storm
 
Distributed Realtime Computation using Apache Storm
Distributed Realtime Computation using Apache StormDistributed Realtime Computation using Apache Storm
Distributed Realtime Computation using Apache Storm
 
C*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with StormC*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
 
storm-170531123446.pptx
storm-170531123446.pptxstorm-170531123446.pptx
storm-170531123446.pptx
 
Monitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapMonitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTap
 
Storm
StormStorm
Storm
 
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
 
Real time stream processing presentation at General Assemb.ly
Real time stream processing presentation at General Assemb.lyReal time stream processing presentation at General Assemb.ly
Real time stream processing presentation at General Assemb.ly
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operations
 
Introduction to apache_cassandra_for_developers-lhg
Introduction to apache_cassandra_for_developers-lhgIntroduction to apache_cassandra_for_developers-lhg
Introduction to apache_cassandra_for_developers-lhg
 
Confitura 2018 — Apache Beam — Promyk Nadziei Data Engineera
Confitura 2018 — Apache Beam — Promyk Nadziei Data EngineeraConfitura 2018 — Apache Beam — Promyk Nadziei Data Engineera
Confitura 2018 — Apache Beam — Promyk Nadziei Data Engineera
 
Node js introduction
Node js introductionNode js introduction
Node js introduction
 
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...
Automated ML Workflow for Distributed Big Data Using Analytics Zoo (CVPR2020 ...
 
Porting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustPorting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to Rust
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
 
Apache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing dataApache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing data
 
Ultra Fast Deep Learning in Hybrid Cloud using Intel Analytics Zoo & Alluxio
Ultra Fast Deep Learning in Hybrid Cloud using Intel Analytics Zoo & AlluxioUltra Fast Deep Learning in Hybrid Cloud using Intel Analytics Zoo & Alluxio
Ultra Fast Deep Learning in Hybrid Cloud using Intel Analytics Zoo & Alluxio
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 

Recently uploaded (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Storm @ Fifth Elephant 2013

  • 3.
  • 4. Laptop with anyOS JDK v7.x installed Mavenv3.0.5+ installed IDE[either Eclipse with m2eclipse plugin or IntelliJ IDEA] CreatedTwitter app for retrieving tweets Cloned ordownloaded Storm Projectsfrom my GitHub Account:  https://github.com/P7h/StormWordCount  https://github.com/P7h/StormTweetsWordCount Prerequisites for Workshop
  • 5. Big Data Batchvs. Real-time processing Intro to Storm CompaniesusingStorm Storm Dependencies Storm Concepts Anatomyof Storm Cluster Live codinga use caseusingStormTopology Storm vs. Hadoop Ag e n d a
  • 6.
  • 7.
  • 8.
  • 10. Batch vs. Real-time Processing Batch processing  Gatheringof dataand processingas a group at one time. Real-time processing  Processingof datathat takes place as theinformation is being entered.
  • 11. Event Processing Simple Event Processing  Actingon a single event,filter in theESP Event Stream Processing  Looking across multiple events Complex Event Processing  Looking across multiple eventsfrom multipleevent streams
  • 12.
  • 13. Storm Createdby Nathan Marz @BackType  Analyzetweets, links,users on Twitter Open sourced on 19th September, 2011  EclipsePublic License 1.0  Stormv0.5.2  16k Java and 7k Clojure LOC Latest Updates  Currentstable release v0.8.2released on 11th January,2013  Major core improvementsplanned for v0.9.0  Stormwill be anApacheProject [soon..]
  • 14. Storm Open source distributedreal-time computation system Hadoop of real-time Fast Scalable Fault-tolerant Guarantees datawill be processed Programminglanguage agnostic Easyto set up and operate Excellent documentation
  • 15.
  • 16. Polyglotism(language agnostic) – Clojure,Java, Python, Ruby, PHP, Perl,… and yes, evenJavaScript https://github.com/nathanmarz/storm-starter/blob/master/multilang/resources/splitsentence.py https://github.com/nathanmarz/storm-starter/blob/master/multilang/resources/splitsentence.rb
  • 17. Real-time analytics Stream processing Online machine learning Continuous computation Distributed RPC Extract,Transform and Load (ETL) Use cases
  • 20.
  • 21.
  • 22.
  • 23. enables the convergenceof Big Data and low-latency processing. Empowers stream / micro-batch processing of user events, content feeds and application logs.
  • 24.
  • 26.
  • 27. Clojure  a dialect of the Lisp programminglanguagerunson the JVM, CLR, andJavaScript engines ApacheThrift  Cross languagebridge,RPC; Frameworktobuild services ØMQ  Asynchronous messagetransportlayer Jetty  Embeddedweb server Stormunderthe hood
  • 28. Stormunderthe hood ApacheZooKeeper  Distributed system, used to store metadata LMAX Disruptor  High performancequeuesharedbythreads Kryo  Serializationframework Misc.  SLF4J,Python, Java 5+,JZMQ, JODA,Guava
  • 29.
  • 30. Tuples Main data structure in Storm. An ordered list of objects.  (“user”, “Prashanth”, “Babu”, “Engineer”, “Bangalore“) Key-valuepairs – keys are strings, values canbe of anytype. Tuple
  • 31. Streams Unbounded sequence of tuples. Edges in the topology. Defined with a schema. Tuple Tuple Tuple Tuple Tuple
  • 32. Spouts Source of streams. Spouts are like sourcesin a graph. Examples are API Calls, log files, event data,queues, Kestrel,AMQP, JMS, Kafka, etc.
  • 34. Bolts Processinput streams and [might] produce new streams. Can do anything i.e. filtering, streaming joins, aggregations,readfrom / write to databases, APIs, run arbitraryfunctions, etc. All sinks in the topology are bolts but not all bolts are sinks. Tuple Tuple Tuple
  • 35. Bolts
  • 36. Topology Networkof spouts and bolts. Can be visualized like a graph. Container for application logic. Analogous to a MapReduce job. But runs forever.
  • 37. Sample Topology [Sentence] [Word, Count] [Sentence] RandomSentenceSpout SplitSentenceBolt SplitSentenceBolt WordCountBolt DBBolt / JMSBolt ………….. More such bolts RandomSentenceSpout https://github.com/P7h/StormWordCount
  • 38. Stream Groupings Each Spout or Bolt might be running n instances in parallel[tasks]. Groupings are used to decide which task in the subscribing bolt, the tuple is sent to. Grouping Feature Shuffle Randomgrouping Fields Groupedby valuesuch that equal valueresults in sametask All Replicates to all tasks Global Makesall tuples goto one task None MakesBolt run in the samethread as the Bolt / Spout it subscribesto Direct Producer(task that emits) controls which Consumerwill receive Local or Shuffle If the targetbolt has one or moretasks in the sameworkerprocess, tuples will be shuffled to just those in-process tasks
  • 39.
  • 41. Storm Cluster Nimbus daemon is the masterof this cluster.  Managestopologies.  Comparable to HadoopJobTracker. Supervisor daemon spawns workers.  Comparable to HadoopTaskTracker. Workersare spawned bysupervisors.  One per port defined in storm.yaml configuration.
  • 42. Storm Cluster [contd..] Task is run as a thread in workers. Zookeeperis a distributed system, used to store metadata. UI is a webapp which gives diagnostics on the cluster and topologies. Nimbus and Supervisor daemons are fail-fast and stateless.  State is storedin Zookeeper.
  • 43. Storm – Modes of operation Localmode  Develop,test and debug topologies onyour localmachine.  Mavenis used to include Storm asa dev dependency for the project. mvn clean compile package && java -jar target/storm-wordcount-1.0-SNAPSHOT-jar- with-dependencies.jar
  • 44. Remote [or Production]mode  Topologies are submitted for executionon a clusterof machines.  Cluster information is added in storm.yaml file.  More details on storm.yaml file canbe found here: https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster#fill-in-mandatory-configurations- into-stormyaml storm jar target/storm-wordcount-1.0-SNAPSHOT.jar org.p7h.storm.offline.wordcount.topology.WordCountTopology WordCount Storm – Modes of operation [contd..]
  • 45.
  • 49. Code Sample – Topology
  • 53.
  • 54. Problem#1 – WordCount [if there are internetissues] Create a Spout which feeds randomsentences [you can define your own set of randomsentences]. Create a Bolt which receivessentencesfrom the Spout and then splits them into words and forwardsthem to next bolt. Create another Bolt to count the words. https://github.com/P7h/StormWordCount
  • 55. Create a Spout which gets data from Twitter [please use Twitter4Jand OAUTH Credentials to get tweets using Streaming API].  Forsimplicity consideronly tweets which arein English.  Emit only the stuff which we areinterested,i.e.A tweet’s getRetweetedStatus(). Create another Bolt to count the count the retweetsof a particular tweet.  Makean in-memoryMapwith retweetscreen name andthe counterof the retweet asthe value.  Logthe counterevery few seconds / minutes [should be configurable]. https://github.com/P7h/StormTopRetweets Problem#2 – Top5 retweetedtweets[if internetworks fine]
  • 56.
  • 57. Storm vs. Hadoop Batch processing Jobs runto completion [Pre-YARN]NameNode is SPOF Statefulnodes Scalable Guarantees nodata loss Open source Real-time processing Topologies run forever No SPOF Stateless nodes Scalable Gurantees nodataloss Open source
  • 58. t now Hadoop works great back here Stormworks here Hadoop AND Storm Blended view Blended view Blended View
  • 60. Advanced Topics [not covered in this session] Distributed RPC Transactional topologies Trident Unit testing Patterns
  • 61. References This Slide deck[on slideshare] – http://j.mp/5thEleStorm_SS This Slide deck[on speakerdeck] – http://j.mp/5thEleStorm_SD MyGitHub Account for code repos – https://github.com/P7h Bit.ly Bundle for Storm curatedby me – http://j.mp/YrDgcs
  • 62.
  • 63. PrashanthBabuV V Follow me on Twitter: @P7h

Editor's Notes

  1. https://fifthelephant.in/2013/workshops
  2. https://twitter.com/jeremyckahn/status/322390046491688960
  3. http://visual.ly/what-big-data
  4. https://twitter.com/Bill_Gross/statuses/329069954911580160
  5. Advantages of batch processing:>> Once the data process is started, the computer can be left running without supervision.>> Large amount of transactions can be combined into a batch rather than processing them each individually.>> Is cost efficient for an organization. Batch processing is only carried out when needed and uses less computer processing time.Disadvantages of batch processing:>> With batch processing there is a time delay before the work is processed and returned.>> Jobs must be run through to completion, and any changes in the data require reprocessing of the batch job itself.>> In batch processing, the master file is not always kept up to date.>> Batch processing can be slow.>> Complete or no insight into the outcomeAdvantages of real-time processing:>> Any errors in the processing of data are caught at the time the data is entered and can be fixed when real-time processing is used.>> Real-time processing provides better control over inventory and inventory turnover.>> Real-time processing reduces the delay in analyzing.Disadvantages of real-time processing:>> Real-time processing is more complex and expensive than batch systems. >> A real-time processing system is harder to audit.>> The backup of real time processing is necessary to retain the data.
  6. Open sourced on 19th September, 2011 [post Twitter acquisition of BackType]Current stable release [as of 11th July, 2013] v0.8.2 released on 11th January, 2013
  7. https://github.com/nathanmarz/storm-starter/tree/master/multilang/resourceshttp://storm-project.net/about/multi-language.html
  8. Real-time analytics – trending topics in Twitter
  9. http://tweitgeist.colinsurprenant.com/
  10. http://storm-project.net/https://github.com/nathanmarz/storm/wiki/Powered-By
  11. https://github.com/nathanmarz/storm/wiki/Powered-Byhttps://speakerdeck.com/mariuszgil/streams-processing-with-strom
  12. https://github.com/nathanmarz/storm/wiki/Powered-Byhttps://speakerdeck.com/mariuszgil/streams-processing-with-strom
  13. https://github.com/nathanmarz/storm/wiki/Powered-Byhttps://speakerdeck.com/mariuszgil/streams-processing-with-strom
  14. http://developer.yahoo.com/blogs/ydn/storm-yarn-released-open-source-143745133.htmlhttps://github.com/nathanmarz/storm/wiki/Powered-Byhttps://speakerdeck.com/mariuszgil/streams-processing-with-strom
  15. https://github.com/nathanmarz/storm/wiki/Concepts
  16. https://github.com/P7h/StormTopRetweets
  17. http://developer.yahoo.com/blogs/ydn/storm-hadoop-convergence-big-data-low-latency-processing-54503.html
  18. https://github.com/nathanmarz/storm/wiki/Tutorial
  19. https://github.com/nathanmarz/storm/wiki/Tutorial