官术网_书友最值得收藏!

2.2 什么是Spark

Apache Spark是一個快速通用的集群計算系統(tǒng),是一種與Hadoop相似的開源集群計算環(huán)境,但是Spark在一些工作負載方面表現(xiàn)得更加優(yōu)越。它提供了Java、Scala、Python和R的高級API,以及一個支持通用的執(zhí)行圖計算的優(yōu)化引擎。它還支持一組豐富的高級工具,包括使用SQL進行結構化數據處理的Spark SQL、用于機器學習的MLlib、用于圖處理的GraphX,以及用于實時流處理的Spark Streaming。

下面介紹Spark的主要特點。

1.快速

我們已經知道,MapReduce主要包括Map和Reduce兩種操作,且將多個任務的中間結果存儲于HDFS中。與MapReduce相比,Spark可以支持包括Map和Reduce在內的更多操作,這些操作相互連接形成一個有向無環(huán)圖(Directed Acyclic Graph,DAG),各個操作的中間數據會被保存在內存中。因此,Spark處理速度比MapReduce更快。

Spark通過使用先進的DAG調度器、查詢優(yōu)化器和物理執(zhí)行引擎,從而能夠高性能地實現(xiàn)批處理和流數據處理。圖2-2是邏輯回歸算法在Hadoop和Spark上的處理時間比較,圖表左邊是Hadoop的處理時間,為110秒;圖表右邊是Spark的處理時間,為0.9秒。

圖2-2 邏輯回歸算法在Hadoop和Spark上的處理時間比較

2.易用

Spark可以使用Java、Scala、Python、R和SQL快速編寫應用程序。

Spark提供了超過80個高級算子(關于算子,在第3章將詳細講解),使用這些算子可以輕松構建并行應用程序,并且可以從Scala、Python、R和SQL的Shell中交互式地使用它們。

3.通用

Spark擁有一系列庫,包括SQL和DataFrame、用于機器學習的MLlib、用于圖計算的GraphX、用于實時計算的Spark Streaming,可以在同一個應用程序中無縫地組合這些庫。

4.到處運行

Spark可以使用獨立集群模式運行(使用自帶的獨立資源調度器,稱為Standalone模式),也可以運行在Amazon EC2、Hadoop YARN、Mesos(Apache下的一個開源分布式資源管理框架)、Kubernetes之上,并且可以訪問HDFS、Cassandra、HBase、Hive等數百個數據源中的數據。

主站蜘蛛池模板: 公安县| 盐城市| 武陟县| 惠水县| 宁阳县| 青川县| 赤城县| 理塘县| 朔州市| 大兴区| 合阳县| 大厂| 手机| 金门县| 庄河市| 淳安县| 民和| 古田县| 和田市| 望奎县| 凤翔县| 剑阁县| 苏州市| 沙湾县| 荣昌县| 峡江县| 彩票| 蒙山县| 丰宁| 彭泽县| 南江县| 通化市| 万州区| 永春县| 郴州市| 大城县| 东方市| 通河县| 天峨县| 靖远县| 建宁县|