### Hapoop生態體系
hdfs+zookeeper+mapreduce/hive+hbase+storm+mahout+其他
### Spark體系
hdfs+zookeeper+spark+hbase+storm+mahout+其他
設計初衷:
設計一個統一的計算引擎解決所有的各種類型的計算
1. 離線批處理
2. 交互式查詢
3. 流式處理
4. 圖計算
5. 迭代計算/機器學習
6. SparkR 科學計算 數據分析
> Spark是一個統一的計算引擎能夠完美融入Hadoop體驗
***優勢***:
1. 減少磁盤IO
2. 增加并行度
3. 避免重復計算: 可以把數據強制能夠持久化到內存中供其他task使用
4. 可選的shuffle和排序: HashShuffle SortShuffle
5. 靈活的內存管理策略

### Spark編程
1. 獲取編程入口
SparkContext SQLContext/HiveContext StreamingContext
2. 通關編程入口加載數據
RDD DataFrame DataSet
3. 對數據進行數據得到結果
各種算子(80個Operators)
4. 對結果進行處理
測試 上線
### 應用場景
1. 復雜的批量處理
2. 基于歷史數據的交互式處理
3. 基于實時數據流的數據處理
### RDD
> 分布式數據集,是Spark中最基本的數據抽象,它代表一個不可變,可分區,內部元素可并行計算的集合.RDD具有數據流模型的特點,自動容錯,位置感知性調度和可伸縮性.RDD允許用戶在執行多個查詢時顯示地將工作集緩存在內存中,后續的查詢能夠重用數據集,這極大的提升了查詢速度.
1. 數據集 Dataset
2. 分布式 Distributed
3. 彈性 Resilent
### SparkContext
> 隱藏了網絡通信,分布式通信,消息通信,存儲能力,計算能力,緩存,測量系統,文件服務,web服務.
> SparkContext內置了DAGSheduler負責創建Job,將RDD劃分到不同的Stage,提交Stage等功能
> SparkContext內置的TaskScheduler負責資源的申請\任務的提交以及請求集群對任務的調度.
>
```
Application->Job->Stage->Task
```