1. 程式人生 > >Spark-Unit1-spark概述與安裝部署

Spark-Unit1-spark概述與安裝部署

一、Spark概述

  spark官網:spark.apache.org

  Spark是用的大規模資料處理的統一計算引擎,它是為大資料處理而設計的快速通用的計算引擎。spark誕生於加油大學伯克利分校AMP實驗室。

  mapreduce(MR)與spark的對比:

    1.MR在計算中產生的結果儲存在磁碟上,spark儲存在記憶體中;

    2.磁碟執行spark的速度是MR的10倍,記憶體執行spark是MR的100多倍;

    3.spark並不是為了替代Hadoop,而是為了補充Hadoop;

    4.spark沒有儲存,但他可以繼承HDFS。

  Spark啟用的是記憶體分散式資料集,而Scala語言可以輕鬆的處理分散式資料集,Scala語言可以說是為Spark而生的,而Spark 的出現推動了Scala語言的發展。

 

二、Spark特點

  1.速度快

    磁碟執行spark的速度是MR的10倍,記憶體執行spark是MR的100多倍;

    Spark使用最先進的DAG排程程式,查詢優化器和物理執行引擎,實現批處理和流處理的高效能。

    註釋:DAG:有向無環圖,上一個RDD的計算結果作為下一個RDD計算的初始值,可以迭代成千上萬次。

          查詢優化器:指的是spark sql

       批處理:spark sql

       流處理:spark streaming

  2.便於使用

    支援Java/Scala/python/R/SQL編寫應用程式

  3.通用性高

    不僅支援批處理、流處理,

    還支援機器學習(MLlib:machine learning library)和圖形計算(GraphX)

  4.相容性高

    Spark執行在Hadoop,Apache Mesos。Kubernetes,獨立或雲端。它可以訪問各種資料來源。

    Spark實現了Standalone模式作為內建的資源管理和排程框架。

 

三、Spark的安裝部署

  1.準備工作:

    新建三臺虛擬機器(建議2G記憶體,1G也可以)/使用遠端連線工具連線 / 關閉防火牆 / 修改主機名

    / 修改對映檔案 / 設定免密登陸 / 安裝jdk(1.8以上版本)

  2.在官網下載spark 安裝包(我是2.2.0版本)

    然後上傳到Linux系統,解壓,刪包,重新命名

  3.修改spark部分配置檔案

    進入spark->conf

    1)重新命名spark-env.sh.template 為 spark-env.sh,進入該檔案

    新增配置資訊:

    export JAVA_HOME=/root/sk/jdk1.8.0_132    //jdk安裝路徑

    export SPARK_MASTER_HOST=spark-01    //spark主節點機器名

    export SPARK_MASTER_PORT=7077       //spark主機點埠號

    2)重新命名slaves.template(好像是這個)為slaves,進入該檔案

    刪除最後一行“localhost”

    新增:spark-02

       spark-03    //其他兩臺從節點worker,便於一鍵啟動

  4.傳送修改好的spark解壓資料夾到其他兩臺機器

    scp -r sprk sprk-02:$PWD

  5.啟動spark,訪問web頁面

    在spark 的sbin目錄下輸入命令:

    ./start-all.sh

    然後通過ip:埠號訪問UI介面,如:

    192.168.50.186:8080

四、Spark的UI介面詳解
   URL:統一資源定位符,spark-master的訪問地址
   REST URL:可以通過rest的方式訪問叢集
   Alive Workers:存活的worker數量
   cores in use:可以使用的核心數量
   Memory in use:可以使用的記憶體大小
   Applications:正在執行和已經完成的應用程式
   Driver:通過driver提交的任務情況
   Status:節點的狀態