Apache Spark概述
生活随笔
收集整理的這篇文章主要介紹了
Apache Spark概述
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MR和Hadoop已被證明是高性能處理海量數據的最佳解決方案。然而,MR在迭代計算中性能不足:多個MR作業之間的輸出必須被寫入HDFS。在單個MR作業中,因為MR框架存在的一些缺點也存在性能不足。
1 Apache Spark是什么?
- 一個快速的企業級大規模數據處理引擎,可以與Apache Hadoop進行互操作
- 用Scala編寫的。Scala是一種兼顧面向對象和函數式的編程語言,在JVM中運行
- Spark讓應用程序在處理過程中能可靠地在內存中分發數據。其能夠讓應用程序避免低效率磁盤I/O,以內存速度進行計算。
- 相比MR,Spark程序在內存儲存模式下執行的速度快100倍,在磁盤存儲模式下速度快10倍
- 通過Scala、python和R的交互式shell,為java、python和R語言提供本地支持
- Spark提供一系列的庫
- Spark可以運行在Hadoop、Mesos、standalone集群管理器,內部硬件系統或云計算平臺上
Spark是一個計算引擎,可以把數據存儲在內存里或Tachyon上進行處理。Spark具有從存儲在HDFS或Hadoop API支持的其他存儲系統中的任何文件創建分布式數據集的能力。
Spark不是Hadoop,不需要Hadoop運行它。Spark支持文本文件、序列文件、Avro、Parquet和其他任何Hadoop輸入格式。
2 MapReduce的問題
- MR為每個映射器和哈建起創建單獨的JVM,啟動JVM需要相當長的時間
- MR代碼需要大量樣板代碼。程序員要從映射(map)化簡(reduce)角度設計業務問題,很難開發。
- MR作業在每個作業之間將數據寫入磁盤,不適合迭代處理
- 更高級別的抽象能為MR作業提供更好的編程手段。
- MR也沒有理想API
MR速度慢是因為MR作業中每個作業都把數據存儲在磁盤上,對同一數據集的多查詢會分別讀取數據,產生大量磁盤讀寫。
Spark把中間數據存儲在內存中,根據需要多次重復使用,提高了性能。
3 Spark的架構
Spark的架構組件有 Spark Core,Spark SQL,Dataset、DataFrame、Spark Streaming、Structured Streaming、Mlib、GraphX、SparkR
?
?
總結
以上是生活随笔為你收集整理的Apache Spark概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop 底层原理介绍
- 下一篇: Mining Precision Int