1.版本
system: windows10jdk: 1.8.0_141scala: 2.10.5spark: spark-2.0.2-bin-hadoop2.6IntelliJ: 15.0.6
2.基本環(huán)境安裝
- 下載安裝
Sparkhttp://m.itdecent.cn/p/1d7015dbc541 - 配置開發(fā)環(huán)境 http://m.itdecent.cn/p/ddd1024b757d
3.配置ssh免密登錄
cd ~進(jìn)入用戶目錄ssh-keygen生成相關(guān)文件,一路回車即可cd ~/.ssh進(jìn)入ssh目錄,如果沒有mkdir .ssh創(chuàng)建一個再生成文件touch authorized_keys創(chuàng)建公鑰保存文件cat id_rsa.pub > authorized_keys密鑰拷貝到公鑰-
chmod 600 authorized_keys附加權(quán)限
生成后的文件 -
ssh localhost登錄驗證
登錄成功
4.創(chuàng)建Spark項目




5.示例程序編寫
讀取文件,統(tǒng)計文件中每一個單詞出現(xiàn)的次數(shù)
-
配置編寫程序需要的依賴,點擊右上角刷新,等待idea加載依賴到項目
配置依賴,如果網(wǎng)絡(luò)狀況不好下載很慢,耐心等待 -
scala目錄下創(chuàng)建一個Scala Class
創(chuàng)建Scala Class
-
輸入
Name,選擇Object創(chuàng)建
創(chuàng)建Object 編寫程序
import org.apache.spark.{SparkContext, SparkConf}
/**
* author: shenke
* date: 2018/12/1 20:46
* description: 讀取文本文件內(nèi)容,統(tǒng)計每個單詞出現(xiàn)的次數(shù)
* helloSpark.txt文本文件內(nèi)容示例:
* hello Spark
* hello World
* hello Spark !
*/
object WordCount {
def main(args: Array[String]) {
// 創(chuàng)建Spark配置類并且指定名稱
val conf = new SparkConf().setAppName("wordCount");
// 創(chuàng)建Spark上下文對象,加載配置
val sc = new SparkContext(conf);
// 讀取指定文件內(nèi)容
val input = sc.textFile("/usr/local/helloSpark");
// flatMap空格拆分文件內(nèi)容,拆分后變成:hello,Spark,hello,World,hello,Spark,!
val lines = input.flatMap(line => line.split(" "));
// map把單詞轉(zhuǎn)換成key:value對的形式,轉(zhuǎn)換后變成:hello:1,Spark:1,hello:1,World:1,hello:1,Spark:1,!:1
// reduceByKey對相同的key進(jìn)行reduce操作,這里累加key相同的value,操作后的結(jié)果:hello:3,Spark:2,World:1,!:1
val count = lines.map(word => (word, 1)).reduceByKey { case (x, y) => x + y }
// 計算結(jié)果保存到指定文件
var output = count.saveAsTextFile("/usr/local/helloSparkRes")
}
}
6.編譯打包
-
配置jar包
配置jar包







7.啟動運行
- 啟動集群
cd /usr/local/spark-2.0.2-bin-hadoop2.6進(jìn)入spark安裝目錄
./sbin/start-master.sh啟動master
jps查看master是否已啟動
master已經(jīng)啟動
到安裝spark環(huán)境的虛擬機(jī)上訪問http://localhost:8080/查看啟動worker的地址信息

./bin/spark-class org.apache.spark.deploy.worker.Worker spark://localhost:7077啟動worker,這里填寫剛才訪問web ui查看的address信息
jps查看worker是否已啟動

yum -y install lrzsz安裝lrzsz
rz -be上傳jar包

./bin/spark-submit --master spark://localhost:7077 --class WordCount /usr/local/spark.jar提交作業(yè),指定同上的address,jar的Main Class以及jar的path
-
作業(yè)運行期間可以訪問
http://localhost:4040/jobs/可以查看任務(wù)的執(zhí)行信息
可以看到任務(wù)執(zhí)行相關(guān)信息 作業(yè)執(zhí)行完畢后查看結(jié)果
cd /usr/local/helloSparkRes進(jìn)入保存作業(yè)執(zhí)行結(jié)果的目錄
生成了part-00000,part-00001,_SUCCESS三個文件,其中part-00000和part-00001保存了作業(yè)的執(zhí)行結(jié)果
cat part-00000
cat part-00001-
分別輸出執(zhí)行結(jié)果
作業(yè)執(zhí)行結(jié)果 -
對比一下預(yù)測的結(jié)果是一致的
編碼時預(yù)測的結(jié)果
`









