当前位置: 首页 > 知识库问答 >
问题:

Spark-来自所有执行程序的合并过滤器结果

寿意远
2023-03-14

我的spark流媒体工作中有3名执行者,这项工作消耗了Kafka的资源。执行器计数取决于主题中的分区计数。当此主题中的消息被使用时,我开始查询Hazelcast。每个执行器都会在hazelcast上查找某些筛选操作的结果,并返回重复的结果。因为当executor返回数据而其他executor找到相同的数据时,数据状态不会更新。

我的问题是,是否有一种方法可以将所有结果合并到一个列表中,该列表由执行者在流媒体期间找到?

共有2个答案

周鸿云
2023-03-14

为了避免重复读取数据,您需要在HBase中保留偏移量,每次使用Kafka中的数据时,您都要从HBase中读取数据,然后检查已使用的每个主题的偏移量,然后开始读写。每次成功写入后,必须更新偏移量计数。

你认为这样能解决问题吗?

漆雕欣德
2023-03-14

Spark执行器分布在整个集群中,所以,如果您试图跨集群消除重复数据,则可以使用Spark执行器。因此,重复数据消除很困难。您有以下选项

  1. 使用累加器。-这里的问题是当作业运行时累加器不一致,您最终可能会读取陈旧的数据
  2. 其他选项是将此工作卸载到外部系统。-将您的输出存储在一些可以重复数据删除的外部存储中。(可能是HBase)。这个存储系统的效率成为这里的关键。

我希望这能有所帮助

 类似资料:
  • 我在我的网络应用程序中偶然发现了一个错误,在我发现发生了什么之前,这个错误让我抓耳挠腮(最终扯了扯头发)。 基本上,我在我的网站上定义了两个过滤器。xml和两个类似的映射: 它们都是Spring MVC过滤器。我的问题是,我得到的表单数据没有被解释为UTF-8,尽管事实上编码过滤器应该在其他任何东西有机会从中读取之前将请求编码设置为UTF-8。 我最后注意到,表单方法过滤器在编码过滤器之前执行,尽

  • 不论是客户端,还是服务器,都可以添加多个过滤器。假设我们按照添加的顺序把它们叫做 filter1, filter2, … filterN。那幺它们的执行顺序是这样的。 在客户端的执行顺序 +------------------- OutputFilter -------------------+ | +-------+ +-------+ +-------

  • 问题内容: 我已经读过这个问题,我的一个同事让我感到怀疑: 在过滤查询中,何时应用过滤器?在执行查询之前还是之后?什么时候缓存结果? 如果事先应用了过滤器,那么在过滤器中复制查询部分不是一件好事吗?如果之后应用了筛选器,那么我将无法理解缓存的内容。 问题答案: 幸运的是,ES为您提供了两种类型的过滤器供您使用: 在第一种情况下,过滤器将应用于查询找到的所有文档。在第二种情况下,将在查询运行之前过滤

  • 如果我的方法被多次调用,并且它仍然在从以前的线程运行run方法,会发生什么?它会启动同样多的线程还是会等待一个线程完成后再启动另一个线程?

  • 我有一个以下格式的文本文件。 第一行包括“USERID”=12345678,其他行包括每个应用程序的用户组:例如: 用户T-number T12345的用户对APP1和APP2具有WRITE访问权限,对APP1具有READ-ONLY访问权限。 T-Number只是另一种ID。 00001, 00002等都是序号,可以忽略。 我需要做一些过滤,并将包含USERID的行与所有具有用户组的行合并,将t-