Course Code: graphcomputing
Duration: 28 hours
Prerequisites:
  • An undersanding of Java programming and frameworks
  • A general understanding of Python is helpful but not required
  • A general understanding of database concepts

Audience

  • Developers
Overview:

Many real world problems can be described in terms of graphs. For example, the Web graph, the social network graph, the train network graph and the language graph. These graphs tend to be extremely large; processing them requires a specialized set of tools and processes -- these tools and processes can be referred to as Graph Computing (also known as Graph Analytics).

In this instructor-led, live training, participants will learn about the technology offerings and implementation approaches for processing graph data. The aim is to identify real-world objects, their characteristics and relationships, then model these relationships and process them as data using a Graph Computing (also known as Graph Analytics and Distributed Graph Processing) approach. We start with a broad overview and narrow in on specific tools as we step through a series of case studies, hands-on exercises and live deployments.

By the end of this training, participants will be able to:

  • Understand how graph data is persisted and traversed.
  • Select the best framework for a given task (from graph databases to batch processing frameworks.)
  • Implement Hadoop, Spark, GraphX and Pregel to carry out graph computing across many machines in parallel.
  • View real-world big data problems in terms of graphs, processes and traversals.

Format of the course

  • Part lecture, part discussion, exercises and heavy hands-on practice
Course Outline:

Introduction

  • Graph databases and libraries

Understanding Graph Data

  • The graph as a data structure
  • Using vertices (dots) and edges (lines) to model real-world scenarios

Using Graph Databases to Model, Persist and Process Graph Data

  • Local graph algorithms/traversals
  • neo4j, OrientDB and Titan

Exercise: Modeling Graph Data with neo4j

  • Whiteboard data modeling

Beyond Graph Databases: Graph Computing

  • Understanding the property graph
  • Graph modeling different scenarios (software graph, discussion graph, concept graph)

Solving Real-World Problems with Traversals

  • Algorithmic/directed walk over the graph
  • Determining circular cependencies

Case Study: Ranking Discussion Contributors

  • Ranking by number and depth of contributed discussions
  • A note on sentiment and concept analysis

Graph Computing: Local, In-Memory Graph toolkits

  • Graph analysis and visualization
  • JUNG, NetworkX, and iGraph

Exercise: Modeling Graph Data with NetworkX

  • Using NetworkX to model a complex system

Graph Computing: Batch Processing Graph Frameworks

  • Leveraging Hadoop for storage (HDFS) and processing (MapReduce)
  • Overview of iterative algorithms
  • Hama, Giraph, and GraphLab

Graph Computing: Graph-Parallel Computation

  • Unifying ETL, exploratory analysis, and iterative graph computation within a single system
  • GraphX

Setup and Installation

  • Hadoop and Spark

GraphX Operators

  • Property, structural, join, neighborhood aggregation, caching and uncaching

Iterating with Pregel API

  • Passing arguments for sending, receiving and computing

Building a Graph

  • Using vertices and edges in an RDD or on disk

Designing Scalable Algorithms

  • GraphX Optimization

Accessing Additional Algorithms

  • PageRank, Connected Components, Triangle Counting

Exercis: Page Rank and Top Users

  • Building and processing graph data using text files as input

Deploying to Production

Closing Remarks

Sites Published:

United Arab Emirates - Introduction to Graph Computing

Qatar - Introduction to Graph Computing

Egypt - Introduction to Graph Computing

Saudi Arabia - Introduction to Graph Computing

South Africa - Introduction to Graph Computing

Brasil - Introduction to Graph Computing

Canada - Introduction to Graph Computing

中国 - 图形计算简介

香港 - Introduction to Graph Computing

澳門 - Introduction to Graph Computing

台灣 - Introduction to Graph Computing

USA - Introduction to Graph Computing

Österreich - Introduction to Graph Computing

Schweiz - Introduction to Graph Computing

Deutschland - Introduction to Graph Computing

Czech Republic - Introduction to Graph Computing

Denmark - Introduction to Graph Computing

Estonia - Introduction to Graph Computing

Finland - Introduction to Graph Computing

Greece - Introduction to Graph Computing

Magyarország - Introduction to Graph Computing

Ireland - Introduction to Graph Computing

Luxembourg - Introduction to Graph Computing

Latvia - Introduction to Graph Computing

España - Introducción a Graph Computing

Italia - Introduction to Graph Computing

Lithuania - Introduction to Graph Computing

Nederland - Introduction to Graph Computing

Norway - Introduction to Graph Computing

Portugal - Introduction to Graph Computing

România - Introduction to Graph Computing

Sverige - Introduction to Graph Computing

Türkiye - Introduction to Graph Computing

Malta - Introduction to Graph Computing

Belgique - Introduction to Graph Computing

France - Introduction to Graph Computing

日本 - Introduction to Graph Computing

Australia - Introduction to Graph Computing

Malaysia - Introduction to Graph Computing

New Zealand - Introduction to Graph Computing

Philippines - Introduction to Graph Computing

Singapore - Introduction to Graph Computing

Thailand - Introduction to Graph Computing

Vietnam - Introduction to Graph Computing

India - Introduction to Graph Computing

Argentina - Introducción a Graph Computing

Chile - Introducción a Graph Computing

Costa Rica - Introducción a Graph Computing

Ecuador - Introducción a Graph Computing

Guatemala - Introducción a Graph Computing

Colombia - Introducción a Graph Computing

México - Introducción a Graph Computing

Panama - Introducción a Graph Computing

Peru - Introducción a Graph Computing

Uruguay - Introducción a Graph Computing

Venezuela - Introducción a Graph Computing

Polska - Introduction to Graph Computing

United Kingdom - Introduction to Graph Computing

South Korea - Introduction to Graph Computing

Pakistan - Introduction to Graph Computing

Sri Lanka - Introduction to Graph Computing

Bulgaria - Introduction to Graph Computing

Bolivia - Introducción a Graph Computing

Indonesia - Introduction to Graph Computing

Kazakhstan - Introduction to Graph Computing

Moldova - Introduction to Graph Computing

Morocco - Introduction to Graph Computing

Tunisia - Introduction to Graph Computing

Kuwait - Introduction to Graph Computing

Oman - Introduction to Graph Computing

Slovakia - Introduction to Graph Computing

Kenya - Introduction to Graph Computing

Nigeria - Introduction to Graph Computing

Botswana - Introduction to Graph Computing

Slovenia - Introduction to Graph Computing

Croatia - Introduction to Graph Computing

Serbia - Introduction to Graph Computing

Bhutan - Introduction to Graph Computing

Nepal - Introduction to Graph Computing

Uzbekistan - Introduction to Graph Computing