# 概論
宏觀上說,每個 Spark 應用程序都由一個*驅動程序(driver programe)*構成,驅動程序在集群上運行用戶的 `main` 函數來執行各種各樣的*并行操作(parallel operations)*。Spark 的主要抽象是提供一個*彈性分布式數據集(RDD resilient distributed dataset)*,RDD 是指能橫跨集群所有節點進行并行計算的分區元素集合。RDD 可以從 Hadoop 文件系統中的一個文件中創建而來(或其他 Hadoop 支持的文件系統),或者從一個已有的 Scala 集合轉換得到。用戶可以要求 Spark 將 RDD *持久化(persist)*到內存中,來讓它在并行計算中高效地重用。最后,RDD 能從節點失敗中自動地恢復過來。
Spark 的第二個抽象是*共享變量(shared variables)*,共享變量能被運行在并行計算中。默認情況下,當 Spark 運行一個并行函數時,這個并行函數會作為一個任務集在不同的節點上運行,它會把函數里使用的每個變量都復制搬運到每個任務中。有時,一個變量需要被共享到交叉任務中或驅動程序和任務之間。Spark 支持 2 種類型的共享變量:*廣播變量(broadcast variables)*,用來在所有節點的內存中緩存一個值;累加器(accumulators),僅僅只能執行“添加(added)”操作,例如:記數器(counters)和求和(sums)。
這個指南會在 Spark 支持的所有語言中演示它的每一個特征。可以非常簡單地從一個 Spark 交互式 shell 開始 -—— `bin/spark-shell` 開始一個 Scala shell,或 `bin/pyspark` 開始一個 Python shell。
* [引入 Spark](linking-with-spark.md)
* [初始化 Spark](initializing-spark.md)
* [Spark RDDs](rdds/README.md)
* [共享變量](shared-variables.md)
* [從這里開始](from-here.md)
- Introduction
- 快速上手
- Spark Shell
- 獨立應用程序
- 開始翻滾吧!
- RDD編程基礎
- 基礎介紹
- 外部數據集
- RDD 操作
- 轉換Transformations
- map與flatMap解析
- 動作Actions
- RDD持久化
- RDD容錯機制
- 傳遞函數到 Spark
- 使用鍵值對
- RDD依賴關系與DAG
- 共享變量
- Spark Streaming
- 一個快速的例子
- 基本概念
- 關聯
- 初始化StreamingContext
- 離散流
- 輸入DStreams
- DStream中的轉換
- DStream的輸出操作
- 緩存或持久化
- Checkpointing
- 部署應用程序
- 監控應用程序
- 性能調優
- 減少批數據的執行時間
- 設置正確的批容量
- 內存調優
- 容錯語義
- Spark SQL
- 概述
- SparkSQLvsHiveSQL
- 數據源
- RDDs
- parquet文件
- JSON數據集
- Hive表
- 數據源例子
- join操作
- 聚合操作
- 性能調優
- 其他
- Spark SQL數據類型
- 其它SQL接口
- 編寫語言集成(Language-Integrated)的相關查詢
- GraphX編程指南
- 開始
- 屬性圖
- 圖操作符
- Pregel API
- 圖構造者
- 部署
- 頂點和邊RDDs
- 圖算法
- 例子
- 更多文檔
- 提交應用程序
- 獨立運行Spark
- 在yarn上運行Spark
- Spark配置
- RDD 持久化