Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 数据流分区(对于updateStateByKey())是如何工作的,以及如何验证它?_Performance_Apache Spark_Apache Kafka_Spark Streaming - Fatal编程技术网

Performance 数据流分区(对于updateStateByKey())是如何工作的,以及如何验证它?

Performance 数据流分区(对于updateStateByKey())是如何工作的,以及如何验证它?,performance,apache-spark,apache-kafka,spark-streaming,Performance,Apache Spark,Apache Kafka,Spark Streaming,我正在使用updateStateByKey()操作来维护Spark流媒体应用程序中的状态。输入数据来自卡夫卡主题 我想了解数据流是如何划分的 分区是如何使用mapWithState()或updateStatebyKey()方法的 在updateStateByKey()中,是否在同一节点上处理给定键的旧状态和新值 updateStateByKey()方法的洗牌频率有多高 我必须维护的状态包含约100000个键,我希望避免每次更新状态时都出现混乱,有什么提示吗?链接到Tathagat Das对同一问

我正在使用
updateStateByKey()
操作来维护Spark流媒体应用程序中的状态。输入数据来自卡夫卡主题

  • 我想了解数据流是如何划分的
  • 分区是如何使用mapWithState()或updateStatebyKey()方法的
  • 在updateStateByKey()中,是否在同一节点上处理给定键的旧状态和新值
  • updateStateByKey()方法的洗牌频率有多高

  • 我必须维护的状态包含约100000个键,我希望避免每次更新状态时都出现混乱,有什么提示吗?

    链接到Tathagat Das对同一问题的答案:

    案文如下:

    默认情况下,
    mapWithState()
    updateStateByKey()
    都使用
    HashPartitioner
    ,并对应用状态操作的键值
    DStream
    中的键进行散列。新的数据和状态在完全相同的分区器中进行分区,因此来自新数据(来自输入
    DStream
    )的相同密钥将被洗牌,并与已分区的状态RDD共存。因此,新数据在同一台机器中被带到相应的旧状态,然后 应用状态映射/更新功能


    状态不是每次都被洗牌,只有新数据的批次在每个批次中被洗牌

    updateStateByKey将一个分区作为它的第二个参数

    理解和解释是两件截然不同的事情。上述内容对我来说简直是胡言乱语(有些陈述甚至不是有效的英语。我不认为这完全回答了这个问题-你能补充一些细节吗?