Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tracking Live Wikipedia Edits

Tracking Live Wikipedia Edits

Realtime processing with Apache Kafka and Storm.
Also used, Apache Hadoop.

Avatar for moandcompany

moandcompany

February 15, 2015

Other Decks in Technology

Transcript

  1. MOTIVATION • Raw dumps of Wikipedia data are available for

    analysis on a monthly basis, but…
 What about changes between these intervals? • Data Collection:
 Live edits for Wikimedia projects are broadcast to nearly 882 IRC channels • Goals: Collect, filter, format, transform and produce information from live edit data now data data why wait? what happened?
  2. STREAM PROCESSING Multiple Topologies (10 sec, 1min, 10 min, 1

    hr)
 Multiple Metrics
 (events, size, new pages, topics, users) Python + Storm (Pyleus) MySQL
  3. API ACCESS Time Series Summary Metrics
 for Multiple Windows New

    Pages Detailed User Activity Detailed Topic Activity Top Topics, Top Users, Top Bots, etc
  4. ABOUT MO A Project Manager that Writes Code ! Worked

    at
 RAND Corporation
 Booz Allen Hamilton Studied at
 Pardee RAND Graduate School
 UC San Diego - Electrical Engineering Alphabet Soup
 PMP, PMI-ACP, CISSP, ISSEP, CSEP, CSEP-ACQ
 
 [email protected]
 GitHub: https://github.com/moandcompany
 LinkedIn: http://linkedin.com/in/andrewmo
  5. BATCH PROCESSING Map Reduce + Pig Hive MR Job Hadoop

    Streaming … Parser Log Pig Hive Spark HBase
  6. DEDUPE IN THE BATCH LAYER • Parse all files and

    send to a Pig batch process • All log files go into a directory consumed by pig (‘LOAD’) • Apply ‘DISTINCT’ criteria to all rows in LOAD before computing metrics HDFS #en logBot #en #en logBot logBot
  7. FIREHOSE Multiplex all sensors to a firehose topic Kafka #de

    logBot Omnichannel #fr #en logBot logBot
  8. VELOCITY AND OUR NEXT SPRINT Sprint 1 (MVP Development) 


    18 Jan - 31 Jan 2015 Address the need + Simplify API-query elicitation and discovery Novel feature focus: Realtime Maximize common-code (Python) Sprint 2 (MVP Validation) Context Enrichment Features API enhancement Batch Integration NoSQL Optimization Preempt Technical Debt - Refactoring Velocity Chart
  9. TECHNOLOGY TO EVALUATE • Presto • Luigi • Samza •

    Hive + Tez • Kafka on YARN (KOYA) • Kafka Security (Authentication) • Spark + Spark Streaming (1.2+ Python)
  10. FAILURE MODES AND FAULT TOLERANCE • Implement Sensor Diversity (need

    de-dupe/false replay rejection) • The system cannot collect data if the IRC network is down • Define loss tolerance thresholds • Use logs as the ultimate source of truth