480 likes | 697 Views
Large Scale Applications on Hadoop in Yahoo. Vijay K Narayanan, Yahoo! Labs. 04.26.2010. Massive Data Analytics Over the Cloud (MDAC 2010). Outline. Hadoop in Yahoo! Common types of applications on Hadoop Sample applications in: Content Analysis Web Graph Mail Spam Filtering
E N D
Large Scale Applications on Hadoop in Yahoo Vijay K Narayanan, Yahoo! Labs 04.26.2010 Massive Data Analytics Over the Cloud (MDAC 2010)
Outline • Hadoop in Yahoo! • Common types of applications on Hadoop • Sample applications in: • Content Analysis • Web Graph • Mail Spam Filtering • Search • Advertising • User Modeling on Hadoop • Challenges and Practical Considerations
By the Numbers • About 30,000 nodes in tens of clusters • 1 Node = 4 *1 TB disk, 8 cores, 16 GB RAM as a typical configuration. • Largest single cluster of about 4000 nodes • 4 tiers of clusters • Application research and development • Production clusters • Hadoop platform development and testing • Proof of concepts and ad-hoc work • Over 1000 users across research, engineering, operations etc. • Running more than 100,000 jobs per day • More than 3 PB of data • Compressed and un-replicated volume • Currently running Hadoop 0.20
Advantages • Wide applicability of the M/R computing model • Many problems in internet domain can be solved by data parallelism • High throughput • Stream through 100 TB of data in less than 1 hour • Applications that took weeks earlier complete in hours • Research prototyping, development, and production deployment systems are (almost) identical • Scalable, economical, fault-tolerant • Shared resource with common infrastructure operations
Entities in internet eco-system User Leverage Hadoop extensively in all of these domains in Yahoo! Content (pages, blogs etc.) Content/Display Advertising Search Engine Browses Searches Interacts Ads (Text, Display etc.) Queries Search Advertising
Common applications on Hadoop in Yahoo! • Near real-time data pipelines • Backbone for analytics, reporting, research etc. • Multi-step pipelines to create data feeds from logs • Web-servers - page content, layout and links, clicks, queries etc. • Ad servers – ad serving opportunity data, impressions • Clicks, beacons, conversion data servers • Process large volume of events • Tens of billions events/day • Tens of TB (compressed) data/day • Latencies of tens of minutes to a few hours. • Continuous runs of jobs working on chunks of data
Example: Data Pipelines Analytics • Network analytics • Experiment reporting • Tens of billions events/day • Parse and Transform event streams • Join clicks with views • Filter out robots • Aggregate, Sort, Partition • Data Quality Checks • Optimize traffic &engagement • User session & click-stream • Path and funnel analysis User Sessions User Profiles • User segment analysis • Interest Ads and Content • Measurements • Modeling and Scoring • Experimentation
Common applications on Hadoop in Yahoo! • High throughput engine for ETL and reporting applications • Put large data sources (e.g. logs) on HDFS • Run canned aggregations, transformations, normalizations • Load reports to RDBMS/data marts • Hourly and Daily batch jobs 3. Exploratory data research • Ad-hoc analysis and insights into data • Leveraging Pig and custom Map Reduce scripts • Pig is based on Pig Latin (up-coming support for SQL) • Procedural language, designed for data parallelism • Supports nested relational data structures
Common applications on Hadoop in Yahoo! • Indexing for efficient retrieval • Build and update indices of content, ads etc. • Updated in batch mode and pushed for online serving • Efficient retrieval of content and ads during serving 5. Offline modeling • Supervised and un-supervised learning algorithms • Outlier detection methods • Association rule mining techniques • Graph analysis methods • Time series analysis etc.
Common applications on Hadoop in Yahoo! 6.Batch and near real-time scoring applications • Offline model scoring for upload to serving applications • Frequency: hourly or daily jobs 7. Near real-time feedback from serving systems • Update features and model weights based on feedback from serving • Periodically push these updates to online scoring and serving • Typical updates in minutes or hours 8. Monitoring and performance dashboards • Analyze scoring and serving logs for: • Monitoring end to end performance of scoring and serving systems • Measurements of model performance and measurements
Application: Content Analysis • Web data • Information about every web site, page, and link crawled by Yahoo • Growing corpus of more than 100Tb+ data from 10’s of billions documents • Document processing pipeline on Hadoop • Enrich with features from page, site etc. • Page segmentation • Term document vector and weighted variants • Entity anlaysis • Detection, disambiguation, resolution of entities in page • Concepts and topic modeling and clustering • Page quality analysis
Application: Web graph analysis • Directed graph of the web • Aggregated views by different dimensions • Sites, Domains, Hosts etc. • Large scale analysis of this graph • 2 trillion links • Jobs utilize 100,000+ maps, ~10,000 reduces • ~300 TB compressed output
Application: Mail spam filtering • Scale of the problem • ~ 25B Connections, 5B deliveries per day • ~ 450M mailboxes • User feedback on spam is often late, noisy and not always actionable
Application: Mail Spam Filtering Campaigns 2432 (IPTYPE:none,FROMUSER:sales,SUBJ:January 18th: CreditReport Update,FROMDOM:zaninte.info,URL:zaninte.info, ip_D:66.206.25.227,) 2447 (IPTYPE:none,FROMUSER:sales,SUBJ:Car-Dealers-Compete-On-New-Vehicles,FROMDOM:sherge.info,URL:sherge.info, ip_D:66.206.25.227,) 17 9 2595 (IPTYPE:none,FROMUSER:sales,SUBJ:It's Important You Know,FROMDOM:dappercom.info,URL:dappercom.info,ip_D:66.206.14.77,) 9 2457 (IPTYPE:none,FROMUSER:sales,SUBJ:Save On Costly Repairs,FROMDOM:aftermoon.info,URL:aftermoon.info,ip_D:66.206.14.78,) 9 2447 (IPTYPE:none,FROMUSER:sales,SUBJ:Car-Dealers-Compete-On-New-Vehicles,FROMDOM:sherge.info,URL:sherge.info,ip_D:66.206.25.227,) 9 2432 (IPTYPE:none,FROMUSER:sales,SUBJ:January 18th: CreditReport Update,FROMDOM:zaninte.info,URL:zaninte.info,ip_D:66.206.25.227,) 9 2376 (IPTYPE:none,FROMUSER:health,SUBJ:Finally. Coverage for the whole family,FROMDOM:fiatchimera.com,URL:articulatedispirit.com,ip_D:216.218.201.149,) 9 2184 (IPTYPE:none,FROMUSER:health,SUBJ:Finally. Coverage for the whole family,FROMDOM:fiatchimera.com,URL:stratagemnepheligenous.com,ip_D:216.218.201.149,) 9 1990 (IPTYPE:none,FROMUSER:sales,SUBJ:Closeout 2008-2009-2010 New Cars,FROMDOM:sastlg.info,URL:sastlg.info,ip_D:66.206.25.227,) 9 1899 (IPTYPE:none,FROMUSER:sales,FROMDOM:brunhil.info,SUBJ:700-CreditScore-What-Is-Yours?,URL:brunhil.info,ip_D:66.206.25.227,) 9 1743 (IPTYPE:none,FROMUSER:sales,SUBJ:Now exercise can be fun,FROMDOM:accordpac.info,URL:accordpac.info,ip_D:66.206.14.78,) 9 1706 (IPTYPE:none,FROMUSER:sales,SUBJ:Closeout 2008-2009-2010 New Cars,FROMDOM:rionel.info,URL:rionel.info,ip_D:66.206.25.227,) 9 1693 (IPTYPE:none,FROMUSER:sales,SUBJ:January 18th: CreditReport Update,FROMDOM:astroom.info,URL:astroom.info,ip_D:66.206.25.227,) 9 1689 (IPTYPE:none,FROMUSER:sales,SUBJ:eBay: Work@Home w/Solid-Income-Strategies,FROMDOM:stamine.info,URL:stamine.info,ip_D:66.165.232.203,)
Application: Search Ranking • Rank web-pages based on relevance to queries • Features based on content of page, site, queries, web graph etc. • Train machine learning models to rank relevant pages for queries • Periodically learn new models
Application: Search AssistTM • Related concepts occur together. Analyze ~ 3 years of logs • Build dictionaries on Hadoop and push to online serving
Applications in Advertising • Expanding sets of seed keywords for matching with text ads • Analyze text corpus, user query sessions, clustering keywords etc. • Indexing ads for fast retrieval • Build and update index of more than a billion text ads • Response prediction and Relevance modeling • Categorization of pages and queries to help in matching • Adult pages, gambling pages etc. • Forecasting of ad inventory • User modeling • Model performance dashboards
User activities • Large dimensionality of possible user activities • But a typical user has a sparse activity vector • Attributes of the events change over time • Building a pipeline on Hadoop to model user interests from activities
User Modeling Pipeline • 5 main components to train, score and evaluate models • Data Generation • Data Acquisition • Feature and Target Generation • Model Training • Offline Scoring and Evaluation • Batch scoring and upload to online serving • Dashboard to monitor the online performance
Overview of User Modeling Pipeline Online Serving Systems Models and Scores Hadoop Scoring and Data Generation Modeling Engine Evaluation Merging Projection Join Join Join Filtering Filtering Scoring Work Flow Manager Model Training Aggregations Score & graph based eval Transformations Scores and User event Feature and Model Files Reports History files Target Set HDFS
1a. Data Acquisition • Input • Multiple user event feeds (browsing activities, search etc.) per time period
1a. Data Acquisition • Tag and Transform • Categorization • Topic • …. Map Operations Project relevant event attributes Filter irrelevant events User event User event User event User event User event User event Normalized Events (NE) Event Feeds HDFS
1a. Data Acquisition • Output: • Single normalized feed containing all events for all users per time period
1b. Feature and Target Generation • Features: • Summaries of user activities over a time window • Aggregates, Moving averages, Rates etc. over moving time windows • Support online updates to existing features • Targets: • Constructed in the offline model training phase • Typically user actions in the future time period indicating interest • Clicks/Click-through rates on ads and content • Site and page visits • Conversion events • Purchases, Quote requests etc. • Sign-ups to newsletters, Registrations etc.
1b. Feature and Target Windows T0 Query Visit Y! finance Interest event Time Moving Window Target Window Feature Window 29
1b. Feature Generation Reduce 1 Reduce 2 Summaries over user event history All events for U2 All events for U1 Aggregates within window Time and event weighted averages Event rates …….. Map 1 Map 2 Map 3 U1, Event 1 U1, Event 2 U1, Event 2 U2, Event 2 U2, Event 1 U2, Event 3 Feature Set Aggregate Normalized events NE 1 NE 2 NE 3 NE 4 NE 5 NE 6 HDFS NE 7 NE 8 NE 9
1b. Joining Features and Targets • Low target rates • Typical response rates are in the range of 0.01% ~ 1% • Many users have no interest activities in the target window • First construct the targets • Compute the feature vector only for users with targets • Reduces the need for computing features for users without target actions • Allows stratified sampling of users with different target and feature attributes
2. Model Training • Supervised models trained using a variety of techniques • Regressions • Different flavors: Linear, Logistic, Poisson etc. • Constraints on weights • Different regularizations: L1 and L2 • Decision trees • Used for both regression and ranking problems • Boosted trees • Naïve Bayes • Support vector machines • Commonly used in text classification, query categorization etc. • Online learning algorithms
2. Model Training • Maximum Entropy modeling • Log-linear link function. • Classification problems in large dimensional, sparse features • Constrained Random Fields • Sequence labeling and named-entity recognition problems • Some of these algorithms are implemented in Mahout • Not all algorithms are easy to implement in MR framework • Train one model per node. • Each node can train model for one target response
3. Offline Scoring and Evaluation • Apply weights from model training phase to features from Feature generation component • Mapper operations only • Janino* equation editor • Embedded compiler can compile arbitrary scoring equations. • Can also embed any class invoked during scoring • Can modify features on the fly before scoring • Evaluation metrics • Sort by scores and compute metrics in reducer • Precision vs. Recall curve • Lift charts * http://docs.codehaus.org/display/JANINO/Home
Modeling Workflow User event history User event history Data Acquisition Data Acquisition Target generation Target generation Evaluation Phase Targets Feature generation Feature generation Features Model Scoring Model Training Evaluation Scores Weights Training Phase Targets Features
4. Batch Scoring User event history Data Acquisition Features Weights Model Scoring Feature generation Scores Online Serving Systems
Current challenges • Limited size of name-node • File and block meta-data in HDFS is in RAM on name-node • On name-node with 64Gb RAM • ~ 100 million file blocks and 60 million files • Upper limit of 4000 node limit cluster • Adding more reducers leads to a large number of small files • Copying data in/out of HDFS • Limited by read/write rates of external file systems • High latency for small jobs • Overhead to set up may be large for small jobs
Practical considerations • Reduce amount of data transfer from mapper to reducer • There is still disk write/read in going from mapper to reducer • Mapper output = Reducer input files can become large • Can run out of disk space for intermediate storage • Project a subset of relevant attributes in mapper to send to reducer • Use combiners • Compress intermediate data • Distribution of keys • Reducer can become a bottleneck for common keys • Use Partitioner to control distribution of map records to reducers • E.g. distribute mapper records with common keys across multiple reducers in a round robin manner
Practical considerations • Judicious partitioning of data • Multiple files helps parallelism, but hit name-node limits • Smaller number of files keeps name-node happy but at the expense of parallelism • Less ideal for distributed computing algorithms requiring communications (e.g. distributed decision trees) • MPI on top of the cluster for communication
Acknowledgment Numerous wonderful colleagues! Questions?
Appendix: More Applications
Application: Content Optimization • Optimizing content across the Yahoo portal pages • Rank articles from an editorial pool of articles based on interest • Yahoo Front Page, • Yahoo News etc. • Customizing feeds in My Yahoo portal page • Top buzzing queries • Content recommendations (RSS feeds) • Use Hadoop for feature aggregates and model weight updates • near real-time and uploaded to online serving
Content Optimization Content Optimization Yahoo Front Page – Case Study Search Index Machine Learned Spam filters Ads Optimization RSS Feed Recos.
Application: Search Logs Analysis • Analyze search result view and click logs • Reporting and measurement of user click response • User session analysis • Enrich, expand and re-write queries • Spelling corrections • Suggesting related queries • Traffic quality and protection • Detect and filter out fraudulent traffic and clicks
Mail Spam Filtering: Connected Components y1 IP1 y1 SQUARING weight = 2 y2 IP2 y2 47 Y1 = Yahoo user 1, Y2 = Yahoo user 2 IP1 = IP address of the host Y1 “voted” not-spam from
Mail Spam Filtering: Connected Components Voting Set of IPs/YIDs used exclusively for voting notspam Set of (likely new) spamming IPs which are “worth” voting for y1 IP3 IP1 y2 IP4 IP2 y3 Set of “voted on” IPs Set of “voted from” IPs Set of Yahoo IDs voting notspam 48