zoukankan      html  css  js  c++  java
  • SparkStreaming本地化策略性能调优与使用场景分析

    1.背景介绍:平台使用的华为FI C203的版本,通过SparkStreaming消费kafka数据后,进行算法处理入库。其中在算法部分耗时为4秒,每个批的数据量在30MB左右。执行算法部分的算子分区数据从50调大至150,发现算法部分时间开销仍然在4秒左右,并未提高。

    2.调优手段:

    spark.locality.wait

    spark.locality.wart.process

    spark.locality.wait.node

    spark.locality.wait.rack

    的默认3秒时间改为0秒。

    3.原因解释

    以上参数是调整会影响到数据本地化策略的。本地化策略有5种。

    1.PROCESS_LOCAL:进程本地化,性能最好(相对数据量较大时)。

    2.ODE_LOCAL:节点本地化。代码和数据在同一个节点中。

    3.NO_PREF:数据从哪里获取都一样,比如从数据库中获取数据。

    4.RACK_LOCAL:数据和task在一个机架的两个节点上,数据需要通过网络在节点之间进行传输。

    5.ANY:数据和task可能在集群中的任何地方,而且不在一个机架中,性能最差(相对数据量较大时)。

    将时间由3秒改为0秒时,spark来不及分析用哪种本地化策略,就已经被降级了(1->5,数字越大,级别越低),降级后的现象是数据shuffle到别的节点上进行算法处理,未降级的特点是算法随着数据走,数据并大部分集中在某一个或两个物理节点,由于cpu不够,反而降低算法处理的整体时间开销。然而sparkStreaming抓取的数据并不大,降级后数据跟随算法走,通过shuffle后,算法与数据分散到不同物理节点上,由于数据量少,网络传输快,cpu资源充足,反而效率更高。调整后算法的算子时间开销不到1秒。

    4.总结

    以上调优手段看使用场景使用,数据量小时时间调小;数据量大的,尽量让算法跟随数据走。

  • 相关阅读:
    jQuery对象初始化的多种传参数形式
    Ajax核心技术之XMLHttpRequest
    【转载】神奇的css属性pointer-events
    JavaScript学习笔记——错误处理
    jquery validate的漂亮css样式验证
    JavaScript Math和Number对象研究
    《JavaScript语言精粹》笔记
    HTML5版的String Avoider小游戏
    IE11 F12工具报错
    css之图片羽化处理
  • 原文地址:https://www.cnblogs.com/runnerjack/p/12107473.html
Copyright © 2011-2022 走看看