Apache Spark?is a fast and general engine for large-scale data processing. Speed Ease of Use Generality Integrated with Hadoop。Spark Streaming is a sub-project of Apache Spark. Spark is a batch processing platform similar to Apache Hadoop, and Spark Streaming is a real-time processing tool that runs on top of the Spark engine.
解決低效問題 我們知道userData 表比每五分鐘的時間日志大很多,這浪費了很多工作。userData 每次調用的時候,都通過網絡hashed和shuffled,盡管它不變化。 在userData使用partitionBy()
Spark是怎樣分割工作的 每個RDD都有一個固定個數的partitions,決定了當執行RDD操作時候的并行度。 Spark會嘗試基于集群大小的默認值,一些情況下,你需要優化并行度。 當我們執行聚合或者分組操作的時候,我們可以讓Spark使用特定個數的partitions。
KeyValue對RDDs(Pairs RDDS)一般用來聚合操作。 將數據轉換成Key/value格式的方法:ETL (extract, transform,and load)操作 extract:字段抽取 transform:已有的RDD轉換 load:加載的時候 parallelize()
Spark維護著RDDs之間的依賴關系和創建關系, 叫做 血統關系圖(lineage graph)。 Spark使用血統關系圖來計算每個RDD的需求和恢復丟失的數據(當一些存儲的RDD丟失的時候)。
RDDs Resilient distributed datasets(彈性分布式數據集,簡寫RDDs)。 一個RDD就是一個不可改變的分布式集合對象,內部由許多partitions(分片)組成,每個partition都包括一部分數據,這些partitions可以在集群的不同節點上計算 Partitions是Spark中的并行處理的單元。Spark順序的,并行的處理partitions。 RDDs 是 Spark的分發數據和計算的基礎抽象類,是Spark的核心概念。 RDD可以包含 Python, Java, 或者 Scala中的任何數據類型,包括用戶自定義的類。 在Spark中,所有的計算都是通過RDDs的創建,轉換,操作完成的。 RDD具有lineage graph(血統關系圖)。
Transformations的特點: Transformations返回一個嶄新的RDD, filter() 操作返回一個指針,指向一個嶄新的RDD,原RDD不受影響,能夠在后面重復利用。
在RDD上計算出來一個結果,把結果返回給driver program或者保存在外部文件系統上,像count() 函數 first()。
數據挖掘與計算大綱問題背景CPU資源傾斜問題源數據傾斜問題小結淘寶技術部-數據挖掘與計算問題背景Spark Streaming在淘寶!雙122013.12.12雙112014.11.11雙122014.12.12 SparkStreaming商品推薦店鋪推薦行業個性化推薦…淘寶技術部-數據挖掘與計算問題背景使用過程中我們經常碰到:內存還剩很多,CPU資源缺消耗殆盡,造成作業無法提交任務的數據本地化有時候會很差,數據需要進行網絡間的遷移CPU資源利用率問題源數據的傾斜問題淘寶技術部-數據挖掘與計算問題
基于Spark/hbase的數據分析平臺及SparkSQl使用經驗分享