1、3种模式(还有其他)
local,standalone,yarn
2、yarn模式
3、yarn 模式提交过程举例
3.1 spark程序编写-WordCount.scala
package org.example.practice
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
//集群跑可以不用设置setMaster
val sparkConf = new SparkConf().setAppName("wordCount")
val sc: SparkContext = new SparkContext(sparkConf)
//提交到集群执行,textfile要写hdfs上路径,
//直接写绝对路径,可以不用加hdfs
//local模式的时候可以写服务器本地地址file://...
val data = sc.textFile("/ETL/wordCount.txt")
val flatRDD = data.flatMap(_.split(" "))
val mapRDD = flatRDD.map((_,1))
val resRDD = mapRDD.reduceByKey(_+_)
resRDD.collect().foreach(println)
}
}
3.2 利用maven打jar包
依次点击clean-package,在对应工程目录下生成target目录,目录下有对应jar包(可以重命名)
jar包,--编译通过的可执行压缩文件
3.3 jar包上传到服务器
Linux shell页面,rz命令
3.4 进入Hadoop集群后(source,knit命令之后),执行spark-submit
spark-submit --class org.example.practice.WordCount
--master yarn
--deploy-mode cluster
--driver-memory 2g
--executor-memory 2g
--num-executors 2
--executor-cores 2
./wc.jar
--class 跟的是含有main函数的Scala程序文件
./wc.jar 是服务器本地地址,相对路径写法
3.5 查看执行结果
(1)web UI 监控页面(页面网址跟集群对应)
(2)或者可以使用命令将logs 返回服务器本地,进而使用less命令分屏查看
yarn logs -applicationId application_1625737972094_1190 > tmp.log
less tmp.log



