1. 程式人生 > >spark 2.X學習筆記

spark 2.X學習筆記

一  課程導讀

1  課程目標          目標:熟悉Spark相關概念          目標:搭建Spark叢集          目標:編寫簡單的Spark應用程式     2 Spark概述         什麼是Spark(官網:http://spark.apache.org)             為什麼要學Spark         Spark特點              快              易用              通用              相容性     3 Spark叢集安裝         安裝              機器部署          下載Spark安裝包          配置Spark     4 執行Spark程式          執行第一個spark程式          啟動Spark Shell          啟動spark shell          在spark shell中編寫WordCount程式          在IDEA中編寫WordCount程式    

二  Spark做概述

Spark是大資料的排程,監控和分配引擎。它是一個快速通用的叢集計算平臺.Spark擴充套件了流行的MapReduce模型.Spark提供的主要功能之一就是能夠在記憶體中執行計算 ,但對於在磁碟上執行的複雜應用程式,系統也比MapReduce更有效。

三 spark和mr的對比

  • 由於記憶體處理的可用性,Spark實現的處理速度比Hadoop MapReduce快10到100倍,而MapReduce則使用永續性儲存來執行任何資料處理任務。
  • 與Hadoop不同,Spark提供了內建庫,可以從同一個核心執行多個任務,如批處理,Steaming,機器學習,Interactive SQL查詢。 但是,Hadoop僅支援批處理。
  • Hadoop與磁碟高度相關,而Spark則提升快取和記憶體資料儲存。
  • Spark能夠在同一資料集上多次執行計算。 這稱為迭代計算,而Hadoop沒有直接實現迭代計算。

Spark是MapReduce的替代方案,而且相容HDFS、Hive,可融入Hadoop的生態系統,以彌補MapReduce的不足。

四  Spark的相關特性

多語言 速度 多格式支援 延遲執行 實時計算 Hadoop整合 機器學習

多語言:Spark提供Java,Scala,Python和R中的高階API .Spark程式碼可以用這四種語言中的任何一種編寫。 它為Scala和Python提供了shell。 可以通過./bin/spark-shell進入Scala Shell和通過./bin/pyspark 進入Python shell 速度:Spark的執行速度比Hadoop MapReduce快100倍,適用於大規模資料處理。 Spark能夠通過控制分割槽實現此速度。 它使用分割槽管理資料,這些分割槽有助於以最小的網路流量並行化處理分散式資料處 多種格式:Spark支援多種資料來源,如Parquet,JSON,Hive和Cassandra。 Data Sources API提供了一種可插入的機制,用於通過Spark SQL訪問結構化資料。 資料來源不僅僅是簡單的管道,可以轉換資料並將其拉入Spark。 延遲執行:Apache Spark延遲執行,直到絕對必要。 這是促進其速度的關鍵因素之一。 對於transformations,Spark將它們新增到計算的DAG中,並且僅當驅動程式請求某些資料時,才會實際執行此DAG。 實時計算:Spark的計算是實時的,並且由於其記憶體計算而具有較少的延遲。 Spark專為大規模可擴充套件性而設計,Spark團隊已經記錄了執行具有數千個節點的生產叢集的系統使用者,並支援多種計算模型。 Hadoop整合:Apache Spark提供與Hadoop的相容性。 Spark是Hadoop的MapReduce的潛在替代品,而Spark能夠使用YARN在現有的Hadoop叢集上執行資源排程。 機器學習:Spark的MLlib是機器學習元件,在大資料處理方面很方便。 它消除了使用多種工具的需求,一種用於處理,一種用於機器學習。 Spark為資料工程師和資料科學家提供了一個功能強大,統一的引擎,既快速又易於使用。

五 快速入門-使用本地模式,安裝