spark 提交任务到yarn上运行
程序员文章站
2022-04-01 12:49:11
...
1、在idea上先写好,自己的代码并进行测试,这里贴一个很简单的统计单词个数的代码
package spark
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]) {
//1/创建sparkconf和spark上下文
/**
*
A master URL must be set in your configuration
An application name must be set in your configuration
所有的配置文件信息,其实都是在sparkconf当中加载的,所以如果你要设置
配置文件的信息的话,conf.set("key","value")
*/
val conf = new SparkConf()
//本地模式,* 会在运行期间检查当前环境下还剩下多少cpu核心,占满
//.setMaster("local[*]")
//.setAppName("idea_start_wc")
val sc = new SparkContext(conf)
val coalesceNum = Integer.parseInt(conf.get("spark.app.coalesce"))
val resultRdd: RDD[(String, Int)] = sc.textFile("hdfs://192.168.89.77:8020/spark/datas/test.txt")
.flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _) //到这一步已经实现wc
.map(t=>(-t._2,t._1)).sortByKey().map(t=>(t._2,-t._1)) //这一步做排序
//repartition
//coalesce
//以上这两个重分区的api有什么区别?
.coalesce(coalesceNum)
//保存
resultRdd.saveAsTextFile(s"hdfs://192.168.89.77:8020/spark/sparkrdd_idea/wordcount_res${System.currentTimeMillis()}")
//调用线程等待,为了方便去页面上看结果信息
//程序终止(通过正常手段关闭程序)
sc.stop()
}
}
2、在本地测试无误后,将代码打包,这里有两种打包方式,1是胖包,2是瘦包,如果石胖包则是将所有的依赖包,都打进这个包里,有可能会报错,则将META-INF下的几个文件删除
==> zip -d <你的jar包名称.jar> META-INF/*.RSA META-INF/*.DSA META-INF/*.SF 这个是对压缩包里的文件进行删除的命令
3、编写,导入的脚本文件 我的配置有限 如下
#!/usr/bin/env bash
bin/spark-submit \
--master yarn \ 你的master平台
--name wordcount \ 你的任务名称
--deploy-mode client \ deploy-mode模式设置,不知道的百度下
--class spark.WordCount \ 你编写的类所在的位置
--driver-memory 1G \ driver的内存分配
--driver-cores 1 \ driver的核心数
--executor-memory 1G \ 每个executor的内存
--executor-cores 1 \ executor的核心数
--num-executors 1 \ executor个数
--conf spark.app.coalesce=2 \ 我们代码里面穿的参数的名字,也就是分区数
/opt/cdh/spark/datas/word_count.jar 我们jar包所在的位置
4、对此脚本程序进行提交bin/spark-submit 命令提交,可以在yarn平台看到我们提交的任务,以及我么你的结果
这里可以我么那可以看到,是两个文件,虽然有一个为空文件,但确实是我们传进来的参数2,得到了两个分区
以上
上一篇: 除夕吃年夜饭的寓意
推荐阅读
-
spark利用yarn提交任务报:YARN application has exited unexpectedly with state UNDEFINED
-
hadoop-yarn集群中,利用hell脚本自动化提交spark任务
-
解析spark源码yarn-cluster模式任务提交
-
将java开发的wordcount程序部署到spark集群上运行
-
(Sql Server big data cluster)Azure Data Studio提交Spark任务从hdfs到SQL Server 2019
-
Yarn上运行spark-1.6.0
-
Yarn上运行spark-1.6.0
-
如何从IDEA提交任务到Spark,并查看任务执行结果
-
记Spark提交任务到Yarn错误汇总
-
SparkLauncher提交jar任务到spark-yarn