本章介紹在各種運行模式如何運行Spark應(yīng)用.
首先需要下載Spark
下載Spark
1.官網(wǎng)地址 http://spark.apache.org/
2.文檔查看地址 https://spark.apache.org/docs/2.1.1/
3.下載地址 https://archive.apache.org/dist/spark/
目前最新版本為2.4.4,考慮到國內(nèi)企業(yè)使用情況我們?nèi)匀贿x擇 2.1.1 來學(xué)習(xí). 不過2.x.x 的版本差別都不大.
Local模式
Local 模式就是指的只在一臺計算機(jī)上來運行 Spark.
通常用于測試的目的來使用Local模式, 實際的生產(chǎn)環(huán)境中不會使用 Local 模式
安裝
解壓Spark安裝包
把安裝包上傳到/opt/software/下,并解壓到/opt/module/目錄下
tar?-zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module
然后復(fù)制剛剛解壓得到的目錄, 并命名為spark
mv spark-2.1.1-bin-hadoop2.7 spark
使用 ls -l 查看spark目錄

目錄說明

啟動Spark-shell
直接執(zhí)行bin目錄下的spark-shell:
./spark-shell
可以看到啟動成功

spark-shell說明<后續(xù)仍會提到>
直接使用./spark-shell
??????表示使用local 模式啟動,在本機(jī)啟動一個SparkSubmit進(jìn)程
還可指定參數(shù) --master,如:
??????spark-shell --master local[N] 表示在本地模擬N個線程來運行當(dāng)前任務(wù)
??????spark-shell --master local[*] 表示使用當(dāng)前機(jī)器上所有可用的資源
不攜帶參數(shù)默認(rèn)就是
??????spark-shell --master local[*]
后續(xù)還可以使用–master指定集群地址,表示把任務(wù)提交到集群上運行,如
??????./spark-shell --master spark://node01:7077,node02:7077
退出spark-shell
??????使用 :quit
spark-shell 初體驗
創(chuàng)建2個文本文件
mkdir?input?
cd?input?
touch?1.txt?
touch?2.txt
分別在1.txt 和 2.txt 內(nèi)輸入一些單詞.
打開Spark-shell
bin/spark-shell
運行wordcount程序
sc.textFile("file:/opt/module/spark/input").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
結(jié)果如下

Spark 通用運行簡易流程

wordcount數(shù)據(jù)流程分析:

1. textFile("input"):讀取本地文件input文件夾數(shù)據(jù);
2. flatMap(_.split(" ")):壓平操作,按照空格分割符將一行數(shù)據(jù)映射成一個個單詞;
3. map((_,1)):對每一個元素操作,將單詞映射為元組;
4. reduceByKey(_+_):按照key將值進(jìn)行聚合,相加;
5. collect:將數(shù)據(jù)收集到Driver端展示。