<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">

    <title>Resources</title>

    <!-- Bootstrap core CSS -->
    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
    <!-- Bootstrap theme -->
    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link rel="stylesheet" href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css">
    <link href="/css/style.css" rel="stylesheet">
    <link href="/assets/css/owl.theme.css" rel="stylesheet">
    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="/assets/js/owl.carousel.min.js"></script>
    <script type="text/javascript" src="/assets/js/storm.js"></script>
    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>


  <body>
    <header>
  <div class="container-fluid">
     <div class="row">
          <div class="col-md-5">
            <a href="/index.html"><img src="/images/logo.png" class="logo" /></a>
          </div>
          <div class="col-md-5">
            
          </div>
          <div class="col-md-2">
            <a href="/downloads.html" class="btn-std btn-block btn-download">Download</a>
          </div>
        </div>
    </div>
</header>
<!--Header End-->
<!--Navigation Begin-->
<div class="navbar" role="banner">
  <div class="container-fluid">
      <div class="navbar-header">
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
          <ul class="nav navbar-nav">
              <li><a href="/index.html" id="home">Home</a></li>
                <li><a href="/getting-help.html" id="getting-help">Getting Help</a></li>
                <li><a href="/about/integrates.html" id="project-info">Project Information</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="documentation">Documentation <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                      
                        
                          <li><a href="/releases/2.3.0/index.html">2.3.0</a></li>
                        
                      
                        
                          <li><a href="/releases/2.2.0/index.html">2.2.0</a></li>
                        
                      
                        
                          <li><a href="/releases/2.1.0/index.html">2.1.0</a></li>
                        
                      
                        
                          <li><a href="/releases/2.0.0/index.html">2.0.0</a></li>
                        
                      
                        
                          <li><a href="/releases/1.2.3/index.html">1.2.3</a></li>
                        
                      
                    </ul>
                </li>
                <li><a href="/talksAndVideos.html">Talks and Slideshows</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="contribute">Community <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
                        <li><a href="/contribute/People.html">People</a></li>
                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
                    </ul>
                </li>
                <li><a href="/2021/09/27/storm230-released.html" id="news">News</a></li>
            </ul>
        </nav>
    </div>
</div>



    <div class="container-fluid">
    <h1 class="page-title">Resources</h1>
          <div class="row">
           	<div class="col-md-12">
	             <!-- Documentation -->

<p class="post-meta"></p>

<div class="documentation-content"><div class="row">
    <div class="col-md-12"> 
        <div class="resources">
            <ul class="nav nav-tabs" role="tablist">
                <li role="presentation" class="active"><a href="#talks" aria-controls="talks" role="tab" data-toggle="tab">Talks</a></li>
                <li role="presentation"><a href="#slideshows" aria-controls="slideshows" role="tab" data-toggle="tab">Slideshows</a></li>
            </ul>
            
            <div class="tab-content">
                <div role="tabpanel" class="tab-pane active" id="talks">
                
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">

                            <div class="col-md-6">
                                <h3>Roshan Naik - Apache Storm 2.0 : Rearchitecture and Performance</h3>
                                <div>
                                    <p>Published on Oct 29, 2019</p><p>
The effort to rearchitect Apache Storm's core engine was born from the observation that there exists a significant gap between hardware capabilities and the performance of the best streaming engines. This talk takes a look at the performance and architecture of the new engine which features a leaner threading model, a lock free messaging subsystem and a new ultra-lightweight Back Pressure model.
            </p>
                                </div>
                            </div>
                                                                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/QsPzAtZXIk4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
                            </div>
                            
                        </div>
                    </div>

<!-- ################### -->                  
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/xNsG26uZ7sw" frameborder="0" allowfullscreen></iframe>
                            </div>
                            <div class="col-md-6">
                                <h3>Kishore Patil (Verizon Media) - Apache Storm 2.0 Overview - Features and Performance Enhancements</h3>
                                <div>
                                    <p>Published on Oct 29, 2019</p><p>
            Apache Storm 2.0 is the biggest release since becoming a top level Apache project. This talk provides a feature summary for the 2.0 release and overviews of the major enhancements to scalability, scheduling, secruity, metrics, Streaming SQL, Streams API etc.
            </p>
                                </div>
                            </div>
                            
                        </div>
                    </div>

<!-- ################### -->
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">

                            <div class="col-md-6">
                                <h3>Nitin Aggarwal, Ishan Chhabra - Fighting Fraud in Real Time by Processing 1M+ TPS Using Storm on Slider (YARN)</h3>
                                <div>
                                    <p>Published on Jul 2, 2016</p><p>
            Rocket Fuel participates in 100+ billion real time advertising auctions everyday to pick out the right opportunities for our clients to advertise to internet consumers. However, some of these opportunities are created by fraudulent entities, who try to steal away money from various participants in the online advertising ecosystem, including Rocket Fuel. In this talk, we describe Helios, our in-house system built using Storm, Slider and HBase to combat this fraud in real time. We start with the core use case and topology design, and then detail how we run Storm on YARN via Slider which, along with other optimizations, enables Storm to scale to 1M+ TPS in this setting. We also describe the design and implementation of our recently open sourced, highly scalable custom spout to ingest rolling log files from HDFS into Storm pipelines with minimal delay. Finally, we cover how we use HBase (on YARN via Slider) to join high velocity streams, despite out of order events and stream delays, and to compute aggregates at large scale via materialized cubes.
            </p>
                                </div>
                            </div>
                                                                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/bZN3z1DjJss" frameborder="0" allowfullscreen></iframe>
                            </div>
                            
                        </div>
                    </div>

<!-- ################### -->                  
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/_Q2uzRIkTd8" frameborder="0" allowfullscreen></iframe>
                            </div>
                            <div class="col-md-6">
                                <h3>P. Taylor Goetz - The Future of Apache Storm</h3>
                                <div>
                                    <p>Published on June 30, 2016</p><p>
            At over 3 years old as an open source project, and an Apache project for more than 2 years, Apache Storm is one of the most mature and widely adopted real-time data platforms available. Apache Storm is used across a wide range of industries, from Fortune 500 companies, to three-letter government agencies, to big data startups, and everything in between. In this session we'll explore how Storm has evolved over the years, and more importantly how it will continue to evolve and innovate in both the near and long term. We will discuss new features, performance improvements, project roadmaps, and its relationship with other open source streaming solutions.
            </p>
                                </div>
                            </div>
                            
                        </div>
                    </div>

<!-- ################### -->
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <h3>Savitha Ravikrishnan, Dheeraj Kapur - Managing Hadoop, HBase, and Storm Clusters at Yahoo Scale</h3>
                                <div>
                                    <p>Published on June 30, 2016</p><p>
            Hadoop at Yahoo is a massive infrastructure and a challenging platform to manage. On a day-to-day basis, it unfolds many challenges in order to be able to run at this scale. We are here to discuss our success in terms of effectively being able to manage this infrastructure from an operations perspective. We have come a long way from full downtime to now no longer requiring any downtime for upgrades and cater to massive workloads in our 40+ clusters in the ecosystem spread across multiple data centers. We are using CI/CD with no downtime upgrades for Hadoop, HBase, Storm, and Support services. Things get even more complex with multi-tenancy, differing workload characteristics, and strict SLAs on HBase and Storm. We will talk about rolling upgrades, and automation & tools we have built to manage a massive grid infrastructure with support for multi-tenancy and full CI/CD.
            </p>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/Ib8ch-xVzbw" frameborder="0" allowfullscreen></iframe>
                            </div>
                            
                        </div>
                    </div>

<!-- ################### -->
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/gk06oNbNkOg" frameborder="0" allowfullscreen></iframe>
                            </div>
                            <div class="col-md-6">
                                <h3>Casey Stella - Outlier Analysis and Anomaly Detection for Sensors with Spark and Storm</h3>
                                <div>
                                    <p>Published on Apr 14, 2016</p><p>
            Detecting outliers and anomalies in data is one of the most common tasks that the working data scientist is asked to do, especially when dealing with volumes of sensor data. Despite this, the library support for problems of this variety are woefully unavailable. Often data scientists are forced to go to research papers and implement their own solutions. This talk will cover the various approaches that I have seen work well in the field and provide reference implementations. We will cover both batch and streaming approaches in Spark and Storm aimed at analyzing sensor feeds.
            </p>
                                </div>
                            </div>
                            
                        </div>
                    </div>

<!-- ################### -->
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <h3>P. Taylor Goetz - Beyond the Tweeting Toaster</h3>
                                <div>
                                    <p>Published on Sep 1, 2015</p><p>
            In this session we will look at how streaming sensor data fits into a variety of (I)IoT analytics use cases, and how Apache Storm and Kafka fit into an overall architecture for large-scale streaming analytics. You will also learn how to leverage the highly accessible Arduino microcontroller platform to create low-cost sensor networks and stream data to Apache Storm for analysis in real time. Finally, we will give a live demonstration of sensor analysis using Kafka, Storm, and an out-of-the-box Arduino board (no soldering required!).
            </p>
                                </div>
                            </div>                                      <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/_h5VjQoAJq4" frameborder="0" allowfullscreen></iframe>
                            </div>
                        </div>
                    </div>

<!-- ################### -->
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/h77pMHzFrSg" frameborder="0" allowfullscreen></iframe>
                            </div>
                            <div class="col-md-6">
                                <h3>David Wilcox and Bobby Evans - Yahoo Ad Manager Plus: A Case Study</h3>
                                <div>
                                    <p>Published on Jun 30, 2015</p><p>
            The Yahoo Ad Manager Plus platform (YAM+) provides reports to advertisers on impressions, clicks, and conversions for their ad campaigns. Impressions and clicks are straightforward. Conversions require joining "action beacons" from advertisers with impressions and clicks from advertisements served by YAM+. A conversion is recorded if a user clicked on or was shown an advertisement associated with the campaign identified in the beacon. This presentation describes a storm topology that uses HBase and Druid to provide low-latency feedback to advertisers on the performance of their campaigns. It covers storm and HBase tuning that was needed to support this reporting at production scale.
            </p>
                                </div>
                            </div>
                        </div>
                    </div>

<!-- ################### -->  
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <h3>Bobby Evans - From Gust to Tempest: Scaling Apache Storm</h3>
                                <div>
                                    <p>Published on Jun 30, 2015</p><p>
            At Yahoo, we extensively use the Apache Storm distributed real-time computation platform at medium scale deployment. In this talk we overview a collection of recent developments at Yahoo enabling massive Storm scaling to an order of magnitude larger clusters. They include a resource aware scheduler, load-aware shuffle grouping, a stand-alone heart-beat server that reduces the load on ZooKeeper, compression of ZooKeeper data and using timestamps instead of whole data through ZooKeeper, and finally a new distributed cache mechanism to distribute large files required by bolts.
            </p>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/pB9d3tMM__k" frameborder="0" allowfullscreen></iframe>
                            </div>
                        </div>
                    </div>

<!-- ################### -->                    
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/hiBc6bHoe3o" frameborder="0" allowfullscreen></iframe>
                            </div>
                            <div class="col-md-6">
                                <h3>Sheetal Dolas - Design Patterns for real time data analytics</h3>
                                <div>
                                    <p>Published on Jun 30, 2015</p><p>
            Businesses are moving from large-scale batch data analysis to large-scale real-time data analysis. Apache Storm has emerged as one of the most popular platforms for the purpose.</p><p>
            This talk covers proven design patterns for real time stream processing. Patterns that have been vetted in large-scale production deployments that process 10s of billions of events/day and 10s of terabytes of data/day.
            </p>
                                </div>
                            </div>
                        </div>
                    </div>

<!-- ################### -->
                    
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <h3>Andrew Montalenti - streamparse: real-time streams with Python and Apache Storm - PyCon 2015</h3>
                                <div>
                                    <p>Published on Apr 12, 2015</p><p>
            Real-time streams are everywhere, but does Python have a good way of processing them? Until recently, there were no good options. A new open source project, streamparse, makes working with real-time data streams easy for Pythonistas. If you have ever wondered how to process 10,000 data tuples per second with Python -- while maintaining high availability and low latency -- this talk is for you.</p>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/ja4Qj9-l6WQ" frameborder="0" allowfullscreen></iframe>
                            </div>
                            
                        </div>
                    </div>

<!-- ################### -->
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/cH8hKyf4Y40" frameborder="0" allowfullscreen></iframe>
                            </div>
                            <div class="col-md-6">
                                <h3>P. Taylor Goetz - Scaling Storm: Cluster Sizing and Performance Optimization</h3>
                                <div>
                                    <p>Published on Jun 23, 2014</p><p>
            ne of the most commonly asked questions about Storm is how to properly size and scale a cluster for a given use case. While there is no magic bullet when it comes to capacity planning for a Storm cluster, there are many operational and development techniques that can be applied to eek out the maximum throughput for a given application. In this session we’ll cover capacity planning, performance tuning and optimization from both an operational and development perspective. We will discuss the basics of scaling, common mistakes and misconceptions, how different technology decisions affect performance, and how to identify and scale around the bottlenecks in a Storm deployment.</p>
                                </div>
                            </div>
                        </div>
                    </div>

<!-- ################### -->

                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <h3>Real-Time Big Data Analytics with Storm
                                </h3>
                                <div>
                                    <p>Published on Oct 12, 2013</p><p>
            This talk provides an overview of the open source Storm system for processing Big Data in realtime. The talk starts with an overview of the technology, including key components: Nimbus, Zookeeper, Topology, Tuple, Trident. The presentation then dives into the complex Big Data architecture in which Storm can be integrated. The result is a compelling stack of technologies including integrated Hadoop clusters, MPP, and NoSQL databases.

            The presentation then reviews real world use cases for realtime Big Data analytics. Social updates, in particular real-time news feeds on sites like Twitter and Facebook, benefit from Storm's capacity to process benefits from distributed logic of streaming. Another case study is financial compliance monitoring, where Storm plays a primary role in reducing the market data to a useable subset in realtime. In a final use case, Storm is crucial to collect rich operational intelligence, because it builds multidimensional stats and executes distributed queries.</p>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/hVO5nbxnBkU" frameborder="0" allowfullscreen></iframe>
                            </div>
                        </div>
                    </div>

<!-- ################### -->

                    
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/od8U-XijzlQ" frameborder="0" allowfullscreen></iframe>
                            </div>
                            
                            <div class="col-md-6">
                                <h3>Andrew Montalenti & Keith Bourgoin - Real-time streams and logs with Storm and Kafka - PyData SV 2014 
                                </h3>
                                <div>
                                    <p>Published on Jun 12, 2014</p><p>
            
            Some of the biggest issues at the center of analyzing large amounts of data are query flexibility, latency, and fault tolerance. Modern technologies that build upon the success of "big data" platforms, such as Apache Hadoop, have made it possible to spread the load of data analysis to commodity machines, but these analyses can still take hours to run and do not respond well to rapidly-changing data sets.</p>

            <p>A new generation of data processing platforms -- which we call "stream architectures" -- have converted data sources into streams of data that can be processed and analyzed in real-time. This has led to the development of various distributed real-time computation frameworks (e.g. Apache Storm) and multi-consumer data integration technologies (e.g. Apache Kafka). Together, they offer a way to do predictable computation on real-time data streams.</p>

            <p>In this talk, we will give an overview of these technologies and how they fit into the Python ecosystem. This will include a discussion of current open source interoperability options with Python, and how to combine real-time computation with batch logic written for Hadoop. We will also discuss Kafka and Storm's alternatives, current industry usage, and some real-world examples of how these technologies are being used in production by Parse.ly today.</p>
                                </div>
                            </div>
                        </div>
                    </div>
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                                                        <div class="col-md-6">
                                <h3>Yahoo talks about Spark vs. Storm
                                </h3>
                                <div>
                                    <p>Published on Sep 18, 2014</p><p>
            Bobby Evans and Tom Graves, the engineering leads for Spark and Storm development at Yahoo will talk about how these technologies are used on Yahoo's grids and reasons why to use one or the other.</p>

            <p>Bobby Evans is the low latency data processing architect at Yahoo. He is a PMC member on many Apache projects including Storm, Hadoop, Spark, and Tez. His team is responsible for delivering Storm as a service to all of Yahoo and maintaining Spark on Yarn for Yahoo (Although Tom really does most of that work).</p>

            <p>Tom Graves a Senior Software Engineer on the Platform team at Yahoo. He is an Apache PMC member on Hadoop, Spark, and Tez. His team is responsible for delivering and maintaining Spark on Yarn for Yahoo.</p>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/uJ5rdAPHE1w" frameborder="0" allowfullscreen></iframe>
                            </div>
                        </div>
                    </div>
<!-- ################### -->
                    <div class="brickSS">
                            <div class="row">
                                <div class="col-md-6">
                                    <iframe width="560" height="315" src="https://www.youtube.com/embed/5F0eQ7mkpTU" frameborder="0" allowfullscreen></iframe>
                                </div>
                            </div>

                            <div class="col-md-6">
                                <h3>Apache Storm Deployment and Use Cases by Spotify Developers
                                </h3>
                                <div>
                                    <p>Published on Apr 3, 2014</p><p>
            This talk was presented at the New York City Storm User Group hosted by Spotify on March 25, 2014.</p><p>
            This is the first time that a Spotify engineer has spoken publicly about their deployment and use cases for Storm! In this talk, Software Engineer Neville Li describes:
            <ul><li>
            Real-time features developed using Storm and Kafka including recommendations, social features, data visualization and ad targeting</li>

            <li>Architecture</li>

            <li>Production integration</li>

            <li>Best practices for deployment</li></ul></p>
            <p>Spotify is an exciting case study - users create 600 Gigabyte of data per day and 150 Gigabyte of data per day via different services. Every day 4 Terabyte of data is generated in Hadoop, a 700-node cluster running over 2.000 jobs per day. They currently have 28 Petabytes of storage, spread out over 4 data centres across the world.</p>
                                </div>
                            </div>
                    </div>
                    
<!-- ################### -->
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <h3>Nathan Bijnens: A Real-Time Architecture Using Hadoop &amp; Storm</h3>
                                <div>
                                                        <p>Published on Dec 19, 2013</p>
                                <p>With the proliferation of data sources and growing user bases, the amount of data generated requires new ways for storage and processing. Hadoop opened new possibilities, yet it falls short of instant delivery. Adding stream processing using Nathan Marz's Storm, can overcome this delay and bridge the gap to real-time aggregation and reporting. On the Batch layer all master data is kept and is immutable. Once the base data is stored a recurring process will index the data. This process reads all master data, parses it and will create new views out of it. The new views will replace all previously created views. In the Speed layer data is stored not yet absorbed in the Batch layer. Hours of data instead of years of data. Once the data is indexed in the Batch layer the data can discarded in the Speed layer. The Query Service merges the data from the Speed and Batch layers. This talk focuses on the Lambda architecture, which combines multiple technologies to be able to process vast amounts of data, while still being able to react timely and report near real-time statistics. Filmed at JAX London 2013.</p>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/CrABmVi12_A" frameborder="0" allowfullscreen></iframe>
                            </div>
                            
                        </div>
                    </div>
<!-- ################### -->

                    <div class="brickSS">
                        <div class="row">
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/LpNbjXFPyZ0" frameborder="0" allowfullscreen></iframe>
                            </div>
                            
                            <div class="col-md-6">
                                <h3>Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search</h3>
                                <div>
                                                        <p>Published on Nov 29, 2013</p><p>
                                    This is a technical architect's case study of how Loggly has employed the latest social-media-scale technologies as the backbone ingestion processing for our multi-tenant, geo-distributed, and real-time log management system. This presentation describes design details of how we built a second-generation system fully leveraging AWS services including Amazon Route 53 DNS with heartbeat and latency-based routing, multi-region VPCs, Elastic Load Balancing, Amazon Relational Database Service, and a number of pro-active and re-active approaches to scaling computational and indexing capacity.</p>
                                    <p>
                                    The talk includes lessons learned in our first generation release, validated by thousands of customers; speed bumps and the mistakes we made along the way; various data models and architectures previously considered; and success at scale: speeds, feeds, and an unmeltable log processing engine.</p>
                                </div>
                            </div>
                        </div>
                    </div>
<!-- ################### -->

<!-- ################### -->

                    <div class="brickSS">
                        <div class="row">
                            
                            <div class="col-md-6">
                                <h3>Real-Time Big Data Analytics with Storm
                                </h3>
                                <div>
                                    <p>Published on Oct 12, 2013</p><p>
            This talk provides an overview of the open source Storm system for processing Big Data in realtime. The talk starts with an overview of the technology, including key components: Nimbus, Zookeeper, Topology, Tuple, Trident. The presentation then dives into the complex Big Data architecture in which Storm can be integrated. The result is a compelling stack of technologies including integrated Hadoop clusters, MPP, and NoSQL databases.</p>
            <p>
            The presentation then reviews real world use cases for realtime Big Data analytics. Social updates, in particular real-time news feeds on sites like Twitter and Facebook, benefit from Storm's capacity to process benefits from distributed logic of streaming. Another case study is financial compliance monitoring, where Storm plays a primary role in reducing the market data to a useable subset in realtime. In a final use case, Storm is crucial to collect rich operational intelligence, because it builds multidimensional stats and executes distributed queries.</p>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/hVO5nbxnBkU" frameborder="0" allowfullscreen></iframe>
                            </div>
                        </div>
                    </div>

<!-- ################### -->

                    
<!-- ################### -->
                    <div class="brickSS">
                        <div class="row">
                        <div class="col-md-6">
                                <iframe width="560" height="315" src="https://www.youtube.com/embed/bdps8tE0gYo" frameborder="0" allowfullscreen></iframe>
                            </div>
                            <div class="col-md-6">
                                <h3>ETE 2012: Nathan Marz on Storm
                                </h3>
                                <div>
                                    <p>Published on May 15, 2012</p><p>
            
            Storm makes it easy to write and scale complex realtime computations on a cluster of computers, doing for realtime processing what Hadoop did for batch processing. Storm guarantees that every message will be processed. And it's fast -- you can process millions of messages per second with a small cluster. Best of all, you can write Storm topologies using any programming language. Storm was open-sourced by Twitter in September of 2011 and has since been adopted by numerous companies around the world.</p><p>
            Storm provides a small set of simple, easy to understand primitives. These primitives can be used to solve a stunning number of realtime computation problems, from stream processing to continuous computation to distributed RPC. In this talk you'll learn:
            <ul>
            <li>The concepts of Storm: streams, spouts, bolts, and topologies</li>
            <li>Developing and testing topologies using Storm's local mode</li>
            <li>Deploying topologies on Storm clusters</li>
            <li>How Storm achieves fault-tolerance and guarantees data processing</li>
            <li>Computing intense functions on the fly in parallel using Distributed RPC</li>
            <li>Making realtime computations idempotent using transactional topologies</li>
            <li>Examples of production usage of Storm</li></ul></p>
                                </div>
                            </div>
                        </div>
                    </div>
<!-- ################### -->
<!-- ########## END VIDEOS ######### -->
                </div>

                <div role="tabpanel" class="tab-pane" id="slideshows">
                    <div class="row" style="padding-left: 45px;">
                        <div class="col-md-6 brick">
                            <h2>Resource Aware Scheduling in Storm</h2>
                            
                            <iframe src="//www.slideshare.net/slideshow/embed_code/key/GDqAajROY4Q3ot" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/HadoopSummit/resource-aware-scheduling-in-apache-spark" title="Resource Aware Scheduling in Apache Storm" target="_blank">Resource Aware Scheduling in Apache Storm</a> </strong> from <strong><a target="_blank" href="//www.slideshare.net/HadoopSummit">HadoopSummit</a></strong> </div>
                            </div>

                        <div class="col-md-6 brick">
                            <h2>Apache Storm 0.9 basic training</h2>
                            <iframe src="//www.slideshare.net/slideshow/embed_code/key/GUD3Y58U1f973x" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/miguno/apache-storm-09-basic-training-verisign" title="Apache Storm 0.9 basic training - Verisign" target="_blank">Apache Storm 0.9 basic training - Verisign</a> </strong> from <strong><a href="//www.slideshare.net/miguno" target="_blank">Michael Noll</a></strong> </div>
                        </div>

                        <div class="col-md-6 brick">
                            <h2>Scaling Apache Storm - Strata + Hadoop World 2014</h2>
                            <iframe src="//www.slideshare.net/slideshow/embed_code/key/NRMYq1985xMCWv" width="340" height="290" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/ptgoetz/scaling-apache-storm-strata-hadoopworld-2014" title="Scaling Apache Storm - Strata + Hadoop World 2014" target="_blank">Scaling Apache Storm - Strata + Hadoop World 2014</a> </strong> from <strong><a href="//www.slideshare.net/ptgoetz" target="_blank">P. Taylor Goetz</a></strong> </div>
                        </div>

                        <div class="col-md-6 brick">
                            <h2>Yahoo compares Storm and Spark</h2>
                            <iframe src="//www.slideshare.net/slideshow/embed_code/key/BRgWgMTzazVSbG" width="340" height="290" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/ChicagoHUG/yahoo-compares-storm-and-spark" title="Yahoo compares Storm and Spark" target="_blank">Yahoo compares Storm and Spark</a> </strong> from <strong><a href="//www.slideshare.net/ChicagoHUG" target="_blank">Chicago Hadoop Users Group</a></strong> </div>
                        </div>
                    </div>

                    <div class="row" style="padding-left: 45px;">
                        <div class="col-md-6 brick">
                            <h2>Hadoop Summit Europe 2014: Apache Storm Architecture</h2>
                            <iframe src="//www.slideshare.net/slideshow/embed_code/key/m9vKPotXvQ8hb7" width="340" height="290" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/ptgoetz/storm-hadoop-summit2014" title="Hadoop Summit Europe 2014: Apache Storm Architecture" target="_blank">Hadoop Summit Europe 2014: Apache Storm Architecture</a> </strong> from <strong><a href="//www.slideshare.net/ptgoetz" target="_blank">P. Taylor Goetz</a></strong> </div>
                        </div>

                        <div class="col-md-6 brick">
                            <h2>Storm: distributed and fault-tolerant realtime computation</h2>
                            <iframe src="//www.slideshare.net/slideshow/embed_code/key/zF8J7y8oz4Qtbc" width="340" height="290" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/nathanmarz/storm-distributed-and-faulttolerant-realtime-computation" title="Storm: distributed and fault-tolerant realtime computation" target="_blank">Storm: distributed and fault-tolerant realtime computation</a> </strong> from <strong><a href="//www.slideshare.net/nathanmarz" target="_blank">Nathan Marz</a></strong> </div>
                        </div>

                        <div class="col-md-6 brick">
                            <h2>Realtime Analytics with Storm and Hadoop</h2>
                            <iframe src="//www.slideshare.net/slideshow/embed_code/key/wAvMj9LtK7OAwn" width="340" height="290" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/Hadoop_Summit/realtime-analytics-with-storm" title="Realtime Analytics with Storm and Hadoop" target="_blank">Realtime Analytics with Storm and Hadoop</a> </strong> from <strong><a href="//www.slideshare.net/Hadoop_Summit" target="_blank">Hadoop Summit</a></strong> </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
</div>


	          </div>
	       </div>
	  </div>
<footer>
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>Meetups</h5>
                    <ul class="latest-news">
                        
                        <li><a href="http://www.meetup.com/Apache-Storm-Apache-Kafka/">Apache Storm & Apache Kafka</a> <span class="small">(Sunnyvale, CA)</span></li>
                        
                        <li><a href="http://www.meetup.com/Apache-Storm-Kafka-Users/">Apache Storm & Kafka Users</a> <span class="small">(Seattle, WA)</span></li>
                        
                        <li><a href="http://www.meetup.com/New-York-City-Storm-User-Group/">NYC Storm User Group</a> <span class="small">(New York, NY)</span></li>
                        
                        <li><a href="http://www.meetup.com/Bay-Area-Stream-Processing">Bay Area Stream Processing</a> <span class="small">(Emeryville, CA)</span></li>
                        
                        <li><a href="http://www.meetup.com/Boston-Storm-Users/">Boston Realtime Data</a> <span class="small">(Boston, MA)</span></li>
                        
                        <li><a href="http://www.meetup.com/storm-london">London Storm User Group</a> <span class="small">(London, UK)</span></li>
                        
                        <!-- <li><a href="http://www.meetup.com/Apache-Storm-Kafka-Users/">Seatle, WA</a> <span class="small">(27 Jun 2015)</span></li> -->
                    </ul>
                </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>About Apache Storm</h5>
                    <p>Apache Storm integrates with any queueing system and any database system. Apache Storm's spout abstraction makes it easy to integrate a new queuing system. Likewise, integrating Apache Storm with database systems is easy.</p>
               </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>First Look</h5>
                    <ul class="footer-list">
                        <li><a href="/releases/current/Rationale.html">Rationale</a></li>
                        <li><a href="/releases/current/Tutorial.html">Tutorial</a></li>
                        <li><a href="/releases/current/Setting-up-development-environment.html">Setting up development environment</a></li>
                        <li><a href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Apache Storm project</a></li>
                    </ul>
                </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>Documentation</h5>
                    <ul class="footer-list">
                        <li><a href="/releases/current/index.html">Index</a></li>
                        <li><a href="/releases/current/javadocs/index.html">Javadoc</a></li>
                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
                    </ul>
                </div>
            </div>
        </div>
        <hr/>
        <div class="row">   
            <div class="col-md-12">
                <p align="center">Copyright © 2019 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved. 
                    <br>Apache Storm, Apache, the Apache feather logo, and the Apache Storm project logos are trademarks of The Apache Software Foundation. 
                    <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
            </div>
        </div>
    </div>
</footer>
<!--Footer End-->
<!-- Scroll to top -->
<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span> 

</body>

</html>

