一、Spark概述 spark官網:spark.apache.org Spark是用的大規模數據處理的統一計算引擎,它是為大數據處理而設計的快速通用的計算引擎。spark誕生於加油大學伯克利分校AMP實驗室。 mapreduce(MR)與spark的對比: 1.MR在計算中產生的結果存儲在磁碟上,s ...
一、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:節點的狀態