AprilJoy / blog

想订阅的点Watch,欢迎 Star,您的鼓励是我写作的动力!
https://apriljoy.github.io/Demo_deploy
0 stars 0 forks source link

spark 部署 #6

Open AprilJoy opened 2 years ago

AprilJoy commented 2 years ago

部署前要做的check项

在提交任务的客户端,使用spark-submit -version 查看spark的版本信息

Flink或Spark引入的jar对应的scala是不是和你环境的scala一致,别一个2.11,一个2.13.

Pom文件检查jar的scala版本

项目检查Project Structure>Global Libraries

在Project Structure>Modules>Dependencies,检查下面Export里Scala版本对不对,检查是不是引入了多个

调试流程

1.本地

2.yarn client

3.yarn cluster

问题定位的一般流程

1.Hadoop集群的RM(ResourceManager)节点上查看日志。进入RM的管理页面,搜索对应的的application id,然后点击进入

2.通过yarn logs -applicationId id 查看所有executor的日志

3.

遇到的问题

[问题1]在公司的集群上以yarn cluster的方式提交任务,前端UI显示任务一直处于accepted的状态 解决:

def getContext(name: String): SparkSession =
    SparkSession.builder().appName(name)
      .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
      .config("spark.sql.parquet.writeLegacyFormat", "true")
      .config("spark.sql.sources.partitionColumnTypeInference.enabled", "true")
      .config("mergeSchema", "true")
      .config("spark.sql.hive.convertMetastoreParquet", "false")
      //.master("local[*]")
      .getOrCreate()

把本地模式的master去掉

[问题2]使用yarn client 方式提交程序,报错scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps; at org.apache.spark.streaming.kafka010.KafkaRDD.count(KafkaRDD.scala:94) 使用yarn cluster 方式提交,报错 diagnostics: User class threw exception: java.lang.IllegalStateException: JobGenerator has already been stopped accidentally 解决:

spark版本冲突,集群用的是spark3.1.1,本地调试用的是2.4.5