Spark运维


spark on yarn运维

场景:对于集群故障和集群配置调整可能对spark实时任务造成的影响及所需采取措施进行记录,并制定对应解决方案。
方案总结:针对下文总结的实时任务存在的隐患,可对hadoop集群配置进行以下调整优化(优化方案需先在测试集群上测试):

  • 增加yarn AM进程的容错重试次数,默认只有一次,调大后可增加长期在yarn上运行的任务的稳定性。
  • 保留RM、NM进程的运行时状态数据,可在rm和nm进程遇故障或者需要重启时使yarn集群稳定过渡。


一、磁盘故障对spark任务的影响

1、如果是application master所在机器磁盘发生故障:

  • 取决于spark application master是否用到该磁盘存储数据:如果没有用到则对spark任务无影响。
  • 如果am进程用到故障磁盘,则会触发Yarn容错机制,ResourceManager会启动新的AM进程,并重新启动所有executor进程,所有旧的executor全部停止,只保留日志。

由于目前yarn参数默认配置,am进程只有一次容错重启的机会,新am进程再出问题则spark任务会down掉。

2、如果是普通的executor所在机器磁盘发生故障:

同样取决于该executor是否用到该磁盘存储数据,如果没用到则无影响。
如果用到该磁盘,则该节点executor日志持续报错,但executor进程还在;spark任务其他节点上executor进程仍正常执行。

针对磁盘故障问题的可用措施:由于目前已经对磁盘健康状态做了监控,但是由于spark任务通常需要长期运行,不可避免会遇到磁盘故障等硬件或者其他问题,可考虑将am容错重试进行调整,增加am容错次数。


二、NodeManager进程故障对spark任务的影响

1、application master所在nm进程故障:

  • spark任务进程一定会down!
    措施:需立即重启spark任务。

2、executor所在NM进程故障:

  • 该NM进程所在节点的executor进程down,其他NM节点executor进程正常执行!
  • 超过120秒没有响应,被ResourceManager和AM进程确认 Slave lost 和 Lost executor。
  • 10分钟后在健康的NM节点上启动新的Executor进程。
    不影响spark实时任务正常工作。


三、DataNode进程重启对spark任务的影响

  • 如果spark实时任务不需要用到HDFS上的数据,则不受影响。
  • 如果Spark任务在读取hdfs上数据,可能会导致部分executor出错,严重时会使spark整体进程down掉。


四、ResourceManager重启对spark任务影响

场景:如果增加RM HA配置,那么修改完配置需要重启rm和nm进程。此时对线上执行的任务有何影响?

  • RM进程down掉后,spark实时任务正常状态下不受影响继续运行(除非触发容错机制或者其他需要跟RM交互的行为时任务将受到影响)。
  • 20分钟后,由于nm进程始终无法与rm进程取得连接,将停掉正在执行的任务和自身NM进程。
  • RM进程上线时,由于之前RM进程数据丢失,所有线上任务都未在新RM进程中注册,会全部被RM进程kill掉。

目前如果重启ResourceManager进程,线上spark不可避免将被影响。

参考建议:修改yarn配置,存储RM、NM进程运行时状态等,重启时减小对线上任务产生的影响。




开发及运维


1、spark实时任务运维

如遇yarn集群故障,集群恢复后一般重启spark任务即可。

2、Spark任务开发注意事项及优化点

  1. 调整spark任务的资源配置并启动时(如executor数量、core数量等),需先将checkpoint删除,否则任务启动后仍会按照旧的资源配置申请资源。
  2. 复用RDD、使用高性能算子、广播大变量、RDD持久化…
  3. 使用高性能序列化框架Kryo优化序列化性能,比spark默认java序列化机制性能高10倍。
  4. 分配合理的资源参数:num-executors、executor-memory、executor-cores、spark.default.parallelism、spark.storage.memoryFraction、spark.shuffle.memoryFraction……
  5. spark任务数据倾斜优化、shuffle参数优化……

具体优化细节不展开记录,可参考网上spark优化相关文章:https://www.jianshu.com/p/67606a11415b

3、问题记录

spark streaming重启时候,如果不清空checkpoint启动就会报null point的错误,并启动失败。

原因:这个实时任务用到Spark SQL中的sparksession来操作sql, 但是sparksession是不能被序列化的,所以不能在checkpoint中保存。重启后操作sql时候会因为sparksession在checkpoint反序列为空而报错,所以需要sparksession在foreachRdd中定义,每次执行都去重新获取。

解决:

 lines.foreachRDD(rdd => {
      //获取单实例SparkSession
      val spark = SparkSessionSingleton.getInstance(rdd.sparkContext.getConf)
      import spark.implicits._
      
      ……
 }

再额外定义一个获取sparksession的类。

/** Lazily instantiated singleton instance of SparkSession */
object SparkSessionSingleton {

  @transient  private var instance: SparkSession = _

  def getInstance(sparkConf: SparkConf): SparkSession = {
    if (instance == null) {
      instance = SparkSession
        .builder
        .config(sparkConf)
        .getOrCreate()
    }
    instance
  }
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容