Netflix Data Pipeline with Kafka Allen Wang & Steven Wu.

Slides:



Advertisements
Similar presentations
Running Your Startup on Amazon Web Services Alex Iskold Founder/CEO AdaptiveBlue Feature Writer ReadWriteWeb.
Advertisements

Building LinkedIn’s Real-time Data Pipeline
Tableau Software Australia
High Availability Deep Dive What’s New in vSphere 5 David Lane, Virtualization Engineer High Point Solutions.
13,000 Jobs and counting…. Advertising and Data Platform Our System.
Sanjay Ghemawat, Howard Gobioff and Shun-Tak Leung
The google file system Cs 595 Lecture 9.
The Google File System. Why? Google has lots of data –Cannot fit in traditional file system –Spans hundreds (thousands) of servers connected to (tens.
Hands-On Microsoft Windows Server 2003 Networking Chapter 7 Windows Internet Naming Service.
The Google File System.
Loupe /loop/ noun a magnifying glass used by jewelers to reveal flaws in gems. a logging and error management tool used by.NET teams to reveal flaws in.
Case Study - GFS.
Google Distributed System and Hadoop Lakshmi Thyagarajan.
1 © Talend 2014 Service Locator Talend ESB Training 2014 Jan Bernhardt Zsolt Beothy-Elo
Take An Internal Look at Hadoop Hairong Kuang Grid Team, Yahoo! Inc
Advanced Topics: MapReduce ECE 454 Computer Systems Programming Topics: Reductions Implemented in Distributed Frameworks Distributed Key-Value Stores Hadoop.
1 The Google File System Reporter: You-Wei Zhang.
CSC 456 Operating Systems Seminar Presentation (11/13/2012) Leon Weingard, Liang Xin The Google File System.
Pepper: An Elastic Web Server Farm for Cloud based on Hadoop Author : S. Krishnan, J.-S. Counio Date : Speaker : Sian-Lin Hong IEEE International.
Oracle10g RAC Service Architecture Overview of Real Application Cluster Ready Services, Nodeapps, and User Defined Services.
Cluster Heartbeats Node health monitoring CSV I/O Built-in resiliency for storage volume access Intra-Cluster Synchronization Replicated state.
Module 2: Installing and Maintaining ISA Server. Overview Installing ISA Server 2004 Choosing ISA Server Clients Installing and Configuring Firewall Clients.
Session objectives Discuss whether or not virtualization makes sense for Exchange 2013 Describe supportability of virtualization features Explain sizing.
Introduction to dCache Zhenping (Jane) Liu ATLAS Computing Facility, Physics Department Brookhaven National Lab 09/12 – 09/13, 2005 USATLAS Tier-1 & Tier-2.
MapReduce and GFS. Introduction r To understand Google’s file system let us look at the sort of processing that needs to be done r We will look at MapReduce.
VICTORIA UNIVERSITY OF WELLINGTON Te Whare Wananga o te Upoko o te Ika a Maui SWEN 432 Advanced Database Design and Implementation MongoDB Architecture.
Fast Crash Recovery in RAMCloud. Motivation The role of DRAM has been increasing – Facebook used 150TB of DRAM For 200TB of disk storage However, there.
GFS. Google r Servers are a mix of commodity machines and machines specifically designed for Google m Not necessarily the fastest m Purchases are based.
11 CLUSTERING AND AVAILABILITY Chapter 11. Chapter 11: CLUSTERING AND AVAILABILITY2 OVERVIEW  Describe the clustering capabilities of Microsoft Windows.
HADOOP DISTRIBUTED FILE SYSTEM HDFS Reliability Based on “The Hadoop Distributed File System” K. Shvachko et al., MSST 2010 Michael Tsitrin 26/05/13.
Efi.uchicago.edu ci.uchicago.edu FAX status report Ilija Vukotic on behalf of the atlas-adc-federated-xrootd working group S&C week Jun 2, 2014.
 Introduction  Architecture NameNode, DataNodes, HDFS Client, CheckpointNode, BackupNode, Snapshots  File I/O Operations and Replica Management File.
You there? Yes Network Health Monitoring Heartbeats are sent to monitor health status of network interfaces Are sent over all cluster.
Ahmet Fuat – Bahçe ş ehir University İleri Seviyede Oracle Ön Bellek Mekanizması (Oracle Coherence)
Launch Amazon Instance. Amazon EC2 Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity in the Amazon Web Services (AWS) cloud.
BNL dCache Status and Plan CHEP07: September 2-7, 2007 Zhenping (Jane) Liu for the BNL RACF Storage Group.
Next Generation of Apache Hadoop MapReduce Owen
Learn. Hadoop Online training course is designed to enhance your knowledge and skills to become a successful Hadoop developer and In-depth knowledge of.
© 2015 MetricStream, Inc. All Rights Reserved. AWS server provisioning © 2015 MetricStream, Inc. All Rights Reserved. By, Srikanth K & Rohit.
Apache Kafka A distributed publish-subscribe messaging system
Gorilla: A Fast, Scalable, In-Memory Time Series Database
CMSC 491 Hadoop-Based Distributed Computing Spring 2016 Adam Shook
@mayralois Mushroom Cloud Effect Alois Mayr Technology Lead – Dynatrace.
1 CMPT 431© A. Fedorova Google File System A real massive distributed file system Hundreds of servers and clients –The largest cluster has >1000 storage.
Pilot Kafka Service Manuel Martín Márquez. Pilot Kafka Service Manuel Martín Márquez.
Data Loss and Data Duplication in Kafka
Troubleshooting Tools
Messaging at CERN Lionel Cons – CERN IT/CM 18 Jan 2017
Troubleshooting Network Communications
Cluster Communications
Gregory Kesden, CSE-291 (Storage Systems) Fall 2017
Gregory Kesden, CSE-291 (Cloud Computing) Fall 2016
Software Engineering Introduction to Apache Hadoop Map Reduce
AWS DevOps Engineer - Professional dumps.html Exam Code Exam Name.
Kubernetes Container Orchestration
Ewen Cheslack-Postava
The Google File System (GFS)
Evolution of messaging systems and event driven architecture
The Google File System (GFS)
The Google File System (GFS)
The Google File System (GFS)
Lecture 16 (Intro to MapReduce and Hadoop)
The Google File System (GFS)
5 Azure Services Every .NET Developer Needs to Know
THE GOOGLE FILE SYSTEM.
Cost Effective Presto on AWS
ZORAN BARAC DATA ARCHITECT at CIN7
The Google File System (GFS)
Presentation transcript:

Netflix Data Pipeline with Kafka Allen Wang & Steven Wu

Agenda ●Introduction ●Evolution of Netflix data pipeline ●How do we use Kafka

What is Netflix?

Netflix is a logging company

that occasionally streams video

Numbers ●400 billion events per day ●8 million events & 17 GB per second during peak ●hundreds of event types

Agenda ●Introduction ●Evolution of Netflix data pipeline ●How do we use Kafka

Mission of Data Pipeline Publish, Collect, Aggregate, Move Cloud Scale

In the old days...

S3 EMR Event Producer

Nowadays...

S3 Router Druid EMR Existing Data Pipeline Event Producer Stream Consumers

In to the Future...

New Data Pipeline S3 Router Druid EMR Event Producer Stream Consumers Fronting Kafka Consumer Kafka

Serving Consumers off Diff Clusters S3 Router Druid EMR Event Producer Stream Consumers Fronting Kafka Consumer Kafka

Split Fronting Kafka Clusters ●Low-priority (error log, request trace, etc.) o 2 copies, 1-2 hour retention ●Medium-priority (majority) o 2 copies, 4 hour retention ●High-priority (streaming activities etc.) o 3 copies, hour retention

Producer Resilience ●Kafka outage should never disrupt existing instances from serving business purpose ●Kafka outage should never prevent new instances from starting up ●After kafka cluster restored, event producing should resume automatically

Fail but Never Block ●block.on.buffer.full=false ●handle potential blocking of first meta data request ●Periodical check whether KafkaProducer was opened successfully

Agenda ●Introduction ●Evolution of Netflix data pipeline ●How do we use Kafka

What Does It Take to Run In Cloud ●Support elasticity ●Respond to scaling events ●Resilience to failures o Favors architecture without single point of failure o Retries, smart routing, fallback...

Kafka in AWS - How do we make it happen ●Inside our Kafka JVM ●Services supporting Kafka ●Challenges/Solutions ●Our roadmap

Netflix Kafka Container Kafka Metric reporting Health check serviceBootstrap Kafka JVM

Bootstrap ●Broker ID assignment o Instances obtain sequential numeric IDs using Curator’s locks recipe persisted in ZK o Cleans up entry for terminated instances and reuse its ID o Same ID upon restart ●Bootstrap Kafka properties from Archaius o Files o System properties/Environment variables o Persisted properties service ●Service registration o Register with Eureka for internal service discovery o Register with AWS Route53 DNS service

Metric Reporting ●We use Servo and Atlas from NetflixOSS Kafka MetricReporter (Yammer → Servo adaptor) JMX Atlas Service

Kafka Atlas Dashboard

Health check service ●Use Curator to periodically read ZooKeeper data to find signs of unhealthiness ●Export metrics to Servo/Atlas ●Expose the service via embedded Jetty

Kafka in AWS - How do we make it happen ●Inside our Kafka JVM ●Services supporting Kafka ●Challenges/Solutions ●Our roadmap

ZooKeeper ●Dedicated 5 node cluster for our data pipeline services ●EIP based ●SSD instance

Auditor ●Highly configurable producers and consumers with their own set of topics and metadata in messages ●Built as a service deployable on single or multiple instances ●Runs as producer, consumer or both ●Supports replay of preconfigured set of messages

Auditor ●Broker monitoring (Heartbeating)

Auditor ●Broker performance testing o Produce tens of thousands messages per second on single instance o As consumers to test consumer impact

Kafka admin UI ●Still searching … ●Currently trying out KafkaManager

Kafka in AWS - How do we make it happen ●Inside our Kafka JVM ●Services supporting Kafka ●Challenges/Solutions ●Our roadmap

Challenges ●ZooKeeper client issues ●Cluster scaling ●Producer/consumer/broker tuning

ZooKeeper Client ●Challenges o Broker/consumer cannot survive ZooKeeper cluster rolling push due to caching of private IP o Temporary DNS lookup failure at new session initialization kills future communication

ZooKeeper Client ●Solutions o Created our internal fork of Apache ZooKeeper client o Periodically refresh private IP resolution o Fallback to last good private IP resolution upon DNS lookup failure

Scaling ●Provisioned for peak traffic o … and we have regional fail-over

Strategy #1 Add Partitions to New Brokers ●Caveat o Most of our topics do not use keyed messages o Number of partitions is still small o Require high level consumer

Strategy #1 Add Partitions to new brokers ●Challenges: existing admin tools does not support atomic adding partitions and assigning to new brokers

Strategy #1 Add Partitions to new brokers ●Solutions: created our own tool to do it in one ZooKeeper change and repeat for all or selected topics ●Reduced the time to scale up from a few hours to a few minutes

Strategy #2 Move Partitions ●Should work without precondition, but... ●Huge increase of network I/O affecting incoming traffic ●A much longer process than adding partitions ●Sometimes confusing error messages ●Would work if pace of replication can be controlled

Scale down strategy ●There is none ●Look for more support to automatically move all partitions from a set of brokers to a different set

Client tuning ●Producer o Batching is important to reduce CPU and network I/O on brokers o Stick to one partition for a while when producing for non-keyed messages o “linger.ms” works well with sticky partitioner ●Consumer o With huge number of consumers, set proper fetch.wait.max.ms to reduce polling traffic on broker

Effect of batching partitionerbatched records per request broker cpu util [1] random without lingering % sticky without lingering 2.050% sticky with 100ms lingering 1533% [1] 10 MB & 10K msgs / second per broker, 1KB per message

Broker tuning ●Use G1 collector ●Use large page cache and memory ●Increase max file descriptor if you have thousands of producers or consumers

Kafka in AWS - How do we make it happen ●Inside our Kafka JVM ●Services supporting Kafka ●Challenges/Solutions ●Our roadmap

Road map ●Work with Kafka community on rack/zone aware replica assignment ●Failure resilience testing o Chaos Monkey o Chaos Gorilla ●Contribute to open source o Kafka o Schlep -- our messaging library including SQS and Kafka support o Auditor

Thank you! @stevenzwu