1. INTRODUCTION

2. CORE TECHNIQUES OF SPARK

2.1 Programming Model

2.2 Spark Architecture

2.3 Pros and Cons of Spark

2.4 Spark System Optimization

3. STORAGE SUPPORTING LAYER

4. PROCESSOR SUPPORTING LAYER

4.1 GPGPU

4.2 FPGA

5. DATA MANAGEMENT LAYER

5.1 Distributed File Systems

5.2 Cloud Data Storage Services

5.3 Distributed Database Systems

5.4 Comparison

6. DATA PROCESSING LAYER

6.1 Streaming Processing

6.2 Graph Processing

6.3 OLTP and OLAP Queries Processing

6.4 Approximate Processing

7. HIGH-LEVEL LANGUAGE LAYER

7.1 R and Python High-level Languages Support

7.2 SQL-like Programming Language and System

8. APPLICATION ALGORITHM

8.1 Machine Learning Support on Spark

8.2 Spark Applications

9. CHALLENGES AND OPEN ISSUES

10. CONCLUSION