ebook img

Practical Graph Analytics with Apache Giraph PDF

320 Pages·2015·8.88 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Practical Graph Analytics with Apache Giraph

® BOOKS FOR PROFESSIONALS BY PROFESSIONALS Martella Logothetis Shaposhnik Practical Graph Analytics with RELATED Apache Giraph Practical Graph Analytics with Apache Giraph helps you build data mining and machine learning applications using the Apache Foundation’s Giraph framework for graph processing. This book brings the power of Apache Giraph to you, showing how to harness the power of graph processing for your own data by building sophisticated graph analytics applications using the very same framework that is relied upon by some of the largest players in the industry today. Graphs arise in a wealth of data scenarios and describe the connections that are naturally formed in both digital and real worlds. Examples of such connections abound in online social networks such as Facebook and Twitter, among users who rate movies from services like Netflix and Amazon Prime, and are useful even in the context of biological networks for scientific research. Whether in the context of business or science, viewing data as connected adds value by increasing the amount of information available to be drawn from that data and put to use in generating new revenue or scientific opportunities. Apache Giraph offers a simple yet flexible programming model targeted to graph algorithms and designed to scale easily to accommodate massive amounts of data. Originally developed at Yahoo!, Giraph is now a top top-level project at the Apache Foundation, and it enlists contributors from companies such as Facebook, LinkedIn, and Twitter. Shelve in: ISBN 978-1-4842-1252-3 54999 Databases/General User level: Intermediate–Advanced SOURCE CODE ONLINE 9781484212523 www.apress.com www.it-ebooks.info Practical Graph Analytics with Apache Giraph Claudio Martella Roman Shaposhnik Dionysios Logothetis www.it-ebooks.info Practical Graph Analytics with Apache Giraph Copyright © 2015 by Claudio Martella, Roman Shaposhnik, and Dionysios Logothetis This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Exempted from this legal reservation are brief excerpts in connection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work. Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher’s location, in its current version, and permission for use must always be obtained from Springer. Permissions for use may be obtained through RightsLink at the Copyright Clearance Center. Violations are liable to prosecution under the respective Copyright Law. ISBN-13 (pbk): 978-1-4842-1252-3 ISBN-13 (electronic): 978-1-4842-1251-6 Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director: Welmoed Spahr Lead Editor: Jonathan Gennick Development Editor: Douglas Pundick Technical Reviewer: Steven Harenberg Editorial Board: Steve Anglin, Mark Beckner, Gary Cornell, Louise Corrigan, Jim DeWolf, Jonathan Gennick, Robert Hutchinson, Michelle Lowman, James Markham, Susan McDermott, Matthew Moodie, Jeffrey Pepper, Douglas Pundick, Ben Renow-Clarke, Gwenan Spearing, Matt Wade, Steve Weiss Coordinating Editor: Jill Balzano Copy Editor: Tiffany Taylor Compositor: SPi Global Indexer: SPi Global Artist: SPi Global Cover Designer: Anna Ishchenko Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit www.apress.com. Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk Sales–eBook Licensing web page at www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this text is available to readers at www.apress.com. For detailed information about how to locate your book’s source code, go to www.apress.com/source-code/. www.it-ebooks.info Contents at a Glance About the Authors ��������������������������������������������������������������������������������������������������xiii About the Technical Reviewer ���������������������������������������������������������������������������������xv Introduction �����������������������������������������������������������������������������������������������������������xvii Annotation Conventions ������������������������������������������������������������������������������������������xix ■ Part I: Giraph Building Blocks ������������������������������������������������������������1 ■ Chapter 1: Introducing Giraph �������������������������������������������������������������������������������3 ■ Chapter 2: Modeling Graph Processing Use Cases ����������������������������������������������17 ■ Chapter 3: The Giraph Programming Model ��������������������������������������������������������43 ■ Chapter 4: Giraph Algorithmic Building Blocks ���������������������������������������������������71 ■ Part II: Giraph Overview �����������������������������������������������������������������107 ■ Chapter 5: Working with Giraph ������������������������������������������������������������������������109 ■ Chapter 6: Giraph Architecture ��������������������������������������������������������������������������137 ■ Chapter 7: Graph IO Formats �����������������������������������������������������������������������������163 ■ Chapter 8: Beyond the Basic API �����������������������������������������������������������������������187 ■ Part III: Advanced Topics ����������������������������������������������������������������215 ■ Chapter 9: Exposing Parallelism in Giraph ��������������������������������������������������������217 ■ Chapter 10: Advanced IO �����������������������������������������������������������������������������������241 iii www.it-ebooks.info ■ Contents at a GlanCe ■ Chapter 11: Tuning Giraph ���������������������������������������������������������������������������������255 ■ Chapter 12: Giraph in the Cloud ������������������������������������������������������������������������277 ■ Appendix A: Install and Configure Giraph and Hadoop ��������������������������������������295 Index ���������������������������������������������������������������������������������������������������������������������309 iv www.it-ebooks.info Contents About the Authors ��������������������������������������������������������������������������������������������������xiii About the Technical Reviewer ���������������������������������������������������������������������������������xv Introduction �����������������������������������������������������������������������������������������������������������xvii Annotation Conventions ������������������������������������������������������������������������������������������xix ■ Part I: Giraph Building Blocks ������������������������������������������������������������1 ■ Chapter 1: Introducing Giraph �������������������������������������������������������������������������������3 Data, Data, Data ����������������������������������������������������������������������������������������������������������������3 From Big Data to Big Graphs ��������������������������������������������������������������������������������������������6 Why Giraph? ���������������������������������������������������������������������������������������������������������������������8 Giraph and the Hadoop Ecosystem ��������������������������������������������������������������������������������11 Giraph and Other Graph-Processing Tools ����������������������������������������������������������������������13 Summary ������������������������������������������������������������������������������������������������������������������������15 ■ Chapter 2: Modeling Graph Processing Use Cases ����������������������������������������������17 Graphs Are Everywhere ��������������������������������������������������������������������������������������������������17 Modeling a Computer Network with a Simple, Undirected Graph ��������������������������������������������������������18 Modeling a Social Network and Relationships �������������������������������������������������������������������������������������20 Modeling Semantic Graphs with Multigraphs���������������������������������������������������������������������������������������21 Modeling Street Maps with Graphs and Weights ����������������������������������������������������������������������������������22 Comparing Online and Offline Computations �����������������������������������������������������������������24 Fitting Giraph in an Application ��������������������������������������������������������������������������������������27 v www.it-ebooks.info ■ Contents Giraph at a Web-Search Company ����������������������������������������������������������������������������������31 Giraph at an E-Commerce Company ������������������������������������������������������������������������������34 Giraph at an Online Social Networking Company �����������������������������������������������������������37 Summary ������������������������������������������������������������������������������������������������������������������������41 ■ Chapter 3: The Giraph Programming Model ��������������������������������������������������������43 Simplifying Large-Scale Graph Processing ��������������������������������������������������������������������43 Hiding the Complexity of Parallel, Distributed Computing ��������������������������������������������������������������������44 Programming through a Graph-Specific Model Based on Iterations ����������������������������������������������������44 A Vertex-centric Perspective ������������������������������������������������������������������������������������������47 The Giraph Data Model �������������������������������������������������������������������������������������������������������������������������47 A Computation Based on Messages and Supersteps ���������������������������������������������������������������������������50 Reducing Messages with a Combiner ��������������������������������������������������������������������������������������������������54 Computing Global Functions with Aggregators ������������������������������������������������������������������������������������55 The Anatomy of a Giraph Computation �������������������������������������������������������������������������������������������������58 Computing In-Out-Degrees ��������������������������������������������������������������������������������������������60 Converting a Directed Graph to Undirected ��������������������������������������������������������������������63 Understanding the Bulk Synchronous Parallel Model ����������������������������������������������������67 Summary ������������������������������������������������������������������������������������������������������������������������69 ■ Chapter 4: Giraph Algorithmic Building Blocks ���������������������������������������������������71 Designing Graph Algorithms That Scale �������������������������������������������������������������������������71 Exploring Connectivity ����������������������������������������������������������������������������������������������������73 Computing Shortest Paths ��������������������������������������������������������������������������������������������������������������������73 Computing Connected Components �����������������������������������������������������������������������������������������������������79 Ranking Important Vertices with PageRank �������������������������������������������������������������������83 Ranking Web Pages ������������������������������������������������������������������������������������������������������������������������������83 PageRank ���������������������������������������������������������������������������������������������������������������������������������������������84 Predicting Ratings to Compute Recommendations ��������������������������������������������������������87 Modeling Ratings with Graphs and Latent Vectors �������������������������������������������������������������������������������88 Minimizing Prediction Error ������������������������������������������������������������������������������������������������������������������89 vi www.it-ebooks.info ■ Contents Identifying Communities with Label Propagation �����������������������������������������������������������94 Characterizing Types of Graphs and Networks ���������������������������������������������������������������99 Summary ����������������������������������������������������������������������������������������������������������������������105 ■ Part II: Giraph Overview �����������������������������������������������������������������107 ■ Chapter 5: Working with Giraph ������������������������������������������������������������������������109 “Hello World” in Giraph ������������������������������������������������������������������������������������������������110 Defining the Twitter Followership Graph ��������������������������������������������������������������������������������������������110 Creating Your First Graph Application �������������������������������������������������������������������������������������������������111 Launching Your Application ����������������������������������������������������������������������������������������������������������������114 Counting the Number of Twitter Connections ���������������������������������������������������������������118 Turning Twitter into Facebook ��������������������������������������������������������������������������������������120 Changing the Graph Structure ��������������������������������������������������������������������������������������123 Sending and Combining Multiple Messages���������������������������������������������������������������������������������������125 Unit-Testing Your Giraph Application ��������������������������������������������������������������������������������������������������127 Beyond a Single Vertex View: Enabling Global Computations ��������������������������������������129 Using Aggregators ������������������������������������������������������������������������������������������������������������������������������130 Aggregators and Master Compute ������������������������������������������������������������������������������������������������������133 A Real-World Example: Shortest Path Finder ���������������������������������������������������������������133 Summary ����������������������������������������������������������������������������������������������������������������������135 ■ Chapter 6: Giraph Architecture ��������������������������������������������������������������������������137 Genesis of Giraph ���������������������������������������������������������������������������������������������������������137 Giraph Building Blocks and Concepts ��������������������������������������������������������������������������138 Masters �����������������������������������������������������������������������������������������������������������������������������������������������139 Workers ����������������������������������������������������������������������������������������������������������������������������������������������140 Coordinators ���������������������������������������������������������������������������������������������������������������������������������������140 Bootstrapping Giraph Services �������������������������������������������������������������������������������������140 Anatomy of Giraph Services �����������������������������������������������������������������������������������������144 Master Services ����������������������������������������������������������������������������������������������������������������������������������146 Worker Services ���������������������������������������������������������������������������������������������������������������������������������150 Coordination Services �������������������������������������������������������������������������������������������������������������������������154 vii www.it-ebooks.info ■ Contents Fault Tolerance �������������������������������������������������������������������������������������������������������������158 Disk Failure �����������������������������������������������������������������������������������������������������������������������������������������159 Node Failure ���������������������������������������������������������������������������������������������������������������������������������������159 Network Failure ����������������������������������������������������������������������������������������������������������������������������������161 Summary ����������������������������������������������������������������������������������������������������������������������162 ■ Chapter 7: Graph IO Formats �����������������������������������������������������������������������������163 Graph Representations �������������������������������������������������������������������������������������������������163 Input Formats ���������������������������������������������������������������������������������������������������������������165 Vertex-Based Input Formats ���������������������������������������������������������������������������������������������������������������167 Edge-Based Input Formats �����������������������������������������������������������������������������������������������������������������171 Combining Input Formats �������������������������������������������������������������������������������������������������������������������175 Input Filters ����������������������������������������������������������������������������������������������������������������������������������������176 Output Formats ������������������������������������������������������������������������������������������������������������178 Vertex-Based Output Formats ������������������������������������������������������������������������������������������������������������178 Edge-Based Output Formats ��������������������������������������������������������������������������������������������������������������182 Aggregator Writers �������������������������������������������������������������������������������������������������������184 Summary ����������������������������������������������������������������������������������������������������������������������186 ■ Chapter 8: Beyond the Basic API �����������������������������������������������������������������������187 Graph Mutations �����������������������������������������������������������������������������������������������������������188 The Mutation API ����������������������������������������������������������������������������������������������������������189 Direct Mutations ���������������������������������������������������������������������������������������������������������������������������������189 Mutation Requests ������������������������������������������������������������������������������������������������������������������������������190 Mutation Through Messages ��������������������������������������������������������������������������������������������������������������193 Resolving Mutation Conflicts ����������������������������������������������������������������������������������������196 The Aggregator API �������������������������������������������������������������������������������������������������������199 Centralized Algorithm Coordination ������������������������������������������������������������������������������201 Halting the Computation �����������������������������������������������������������������������������������������������203 Using Aggregators for Coordination �����������������������������������������������������������������������������204 Writing Modular Applications ���������������������������������������������������������������������������������������205 viii www.it-ebooks.info ■ Contents Structuring an Algorithm into Phases ���������������������������������������������������������������������������205 The Composable API �����������������������������������������������������������������������������������������������������209 Summary ����������������������������������������������������������������������������������������������������������������������212 ■ Part III: Advanced Topics ����������������������������������������������������������������215 ■ Chapter 9: Exposing Parallelism in Giraph ��������������������������������������������������������217 Worker Computations ���������������������������������������������������������������������������������������������������218 Use case: Sharing Data Across a Worker ��������������������������������������������������������������������������������������������218 Use Case: Per-Worker Performance Statistics ������������������������������������������������������������������������������������223 Thread Safety in Giraph ����������������������������������������������������������������������������������������������������������������������227 Controlling Graph Partitioning ��������������������������������������������������������������������������������������227 The Importance of Partitioning �����������������������������������������������������������������������������������������������������������228 Implementing Custom Partitioners �����������������������������������������������������������������������������������������������������230 Partition Balancing �����������������������������������������������������������������������������������������������������������������������������237 Summary ����������������������������������������������������������������������������������������������������������������������239 ■ Chapter 10: Advanced IO �����������������������������������������������������������������������������������241 Accessing Data in Hive �������������������������������������������������������������������������������������������������241 Reading Input Data �����������������������������������������������������������������������������������������������������������������������������242 Writing Output Data ����������������������������������������������������������������������������������������������������������������������������245 Accessing Data in Gora ������������������������������������������������������������������������������������������������247 Reading Input Data �����������������������������������������������������������������������������������������������������������������������������248 Writing Output Data ����������������������������������������������������������������������������������������������������������������������������250 Summary ����������������������������������������������������������������������������������������������������������������������253 ■ Chapter 11: Tuning Giraph ���������������������������������������������������������������������������������255 Key Giraph Performance Factors ����������������������������������������������������������������������������������256 Giraph’s Requirements for Hadoop ������������������������������������������������������������������������������257 Hardware-related Choices ������������������������������������������������������������������������������������������������������������������257 Job-related Choices ����������������������������������������������������������������������������������������������������������������������������258 Tuning Your Data Structures �����������������������������������������������������������������������������������������260 The OutEdges Interface ����������������������������������������������������������������������������������������������������������������������261 The MessageStore Interface ���������������������������������������������������������������������������������������������������������������265 ix www.it-ebooks.info

Description:
Practical Graph Analytics with Apache Giraph helps you build data mining and machine learning applications using the Apache Foundation's Giraph framework for graph processing. This is the same framework as used by Facebook, Google, and other social media analytics operations to derive business value
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.