spark入門知識和job任務提交流程

spark是Apache開源社區的一個分佈式計算引擎,基於內存計算,因此速度要快於hadoop.

下載

  1. 地址spark.apache.orgshell

安裝

  1. 複製一臺單獨的虛擬機,名capache

  2. 修改其ip,192.168.56.200網絡

  3. 修改其hostname爲c,hostnamectl set-hostname c分佈式

  4. 修改/etc/hosts加入對本機的解析ide

  5. 重啓網絡服務 systemctl restart networkoop

  6. 上傳spark安裝文件到root目錄spa

  7. 解壓spark到/usr/local下,將其名字修改成sparkrest

本地運行模式

使用spark-submit提交job

  1. cd /usr/local/sparkorm

  2. ./bin/spark-submit --class org.apache.spark.examples.SparkPi ./examples/jars/spark-examples_2.11-2.1.0.jar 10000進程

使用spark-shell進行交互式提交

  1. 建立root下的文本文件hello.txt

  2. ./bin/spark-shell

  3. 再次鏈接一個terminal,用jps觀察進程,會看到spark-submit進程

  4. sc

  5. sc.textFile("/root/hello.txt")

  6. val lineRDD = sc.textFile("/root/hello.txt")

  7. lineRDD.foreach(println)

  8. 觀察網頁端狀況

  9. val wordRDD = lineRDD.flatMap(line => line.split(" "))

  10. wordRDD.collect

  11. val wordCountRDD = wordRDD.map(word => (word,1))

  12. wordCountRDD.collect

  13. val resultRDD = wordCountRDD.reduceByKey((x,y)=>x+y)

  14. resultRDD.collect

  15. val orderedRDD = resultRDD.sortByKey(false)

  16. orderedRDD.collect

  17. orderedRDD.saveAsTextFile("/root/result")

  18. 觀察結果

  19. 簡便寫法:sc.textFile("/root/hello.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortByKey().collect

使用local模式訪問hdfs數據

  1. start-dfs.sh

  2. spark-shell執行:sc.textFile("hdfs://192.168.56.100:9000/hello.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortByKey().collect (能夠把ip換成master,修改/etc/hosts)

  3. sc.textFile("hdfs://192.168.56.100:9000/hello.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortByKey().saveAsTextFile("hdfs://192.168.56.100:9000/output1")

spark standalone模式

  1. 在master和全部slave上解壓spark

  2. 修改master上conf/slaves文件,加入slave

  3. 修改conf/spark-env.sh,export SPARK_MASTER_HOST=master

  4. 複製spark-env.sh到每一臺slave

  5. cd /usr/local/spark

  6. ./sbin/start-all.sh

  7. 在c上執行:./bin/spark-shell --master spark://192.168.56.100:7077 (也能夠使用配置文件)

  8. 觀察http://master:8080

spark on yarn模式

相關文章
相關標籤/搜索