本地运行jar包
将自己的jar包上传到Linux中
运行Spark的Master节点与Worker节点
在Spark目录下运行以下命令
bin/spark-submit \
--class com.huadian.bigdata.spark.core.TrackLogAnalyseSpark \
spark-learning-1.0-SNAPSHOT.jar \
local[2]
结果
Spark standalone上运行自定义jar包
bin/spark-submit \
--master spark://bigdata-hpsk01.huadian.com:7077 \
--class com.huadian.bigdata.spark.core.TrackLogAnalyseSpark \
spark-learning-1.0-SNAPSHOT.jar \
spark://bigdata-hpsk01.huadian.com:7077
结果
结果将不在控制台输出
结果输出在日志文件中
设置每个Spark application运行的资源
bin/spark-submit \
--master spark://bigdata-hpsk01.huadian.com:7077 \
--class com.huadian.bigdata.spark.core.TrackLogAnalyseSpark \
--executor-cores 1 \
--total-executor-cores 2 \
--driver-memory 512M \
--executor-memory 512M \
spark-learning-1.0-SNAPSHOT.jar \
spark://bigdata-hpsk01.huadian.com:7077
结果
可以看到有两个任务在同时跑一个任务
spark application运行的过程
回顾MapReduce程序运行在Yarn集群组成
-1.Application Master
应用的管理者,负责资源的申请,task运行监控调度
-2.Task的运行
MapTask和ReduceTask,都是运行在Nodemanager上Container容器中。
spark application运行在集群下,包含2部分
-1.Driver Program -JVM 进程
相当于AppMaster,应用的管理者,主要是调度job的执行
就是程序Main方法,必须创建sparkContext实例对象
端口号4040,提供应用的监控
-2.Executor s
每一个Executor是一个JVM进程,里面包含内存和CPU(可以理解为容器container),运行Task—相当于线程池
那么executor可以运行多少个tasks,就看有多少core