Applying Functional Programming Principles to Large Scale Data Processing
summary
Indix processes about 4 TB of fresh crawl data per day and 450 million product URLs, and replaces mutable shared DB rows with an append-only log on HDFS (or Kafka) plus read-time reconciliation so every update is recoverable. The pipeline runs on Hadoop using Cascading abstractions and Scalding on Hadoop for concise jobs, with Spark only for in-memory iterations. Aggregations are expressed as monoids for aggregation so parallel counts, max/min and metrics scale and debugging and retries work.
AI-written summary · about
chapters (10)
- 0:00Functional data processing intro
- 5:19Large scale pipeline challenges
- 8:08Why databases fail data systems
- 10:16Immutability and append-only storage
- 14:52Side effects and pure functions
- 17:19Monoids for parallel operations
- 20:06Scaling with Cascading Scalding
- 27:29Spark versus Hadoop
- 28:33Metrics and aggregations heartbeat
- 34:31Summary of functional principles
related talks
44mDemocratizing data with an internal data pipeline platform
01h 35mDeep Dive into the Big Data Landscape
40mProductionizing Big Data - Stories from the Trenches
11mBig Data Analytics: Immutability & Idempotence
45mData pipelines from zero to solid
05mInterview
41mIntroducing Cascalog: Functional Data Processing for Hadoop
31mOne Data Pipeline to Rule Them All
