标签: apache-flink

Flink 可以将结果写入多个文件(如 Hadoop 的 MultipleOutputFormat)吗?

我正在使用 Apache Flink 的 DataSet API。我想实现一项将多个结果写入不同文件的作业。

我怎样才能做到这一点?

hadoop apache-flink

3
推荐指数
1
解决办法
5397
查看次数

使用 GlobalWindow 在 Beam 中进行状态垃圾收集

Apache Beam 最近通过注释引入了状态单元,并在Apache Flink 和 Google Cloud Dataflow 中提供了部分支持。StateSpec@StateId

我找不到任何有关将其与GlobalWindow. 特别是,有没有一种方法可以拥有“状态垃圾收集”机制,以根据某些配置摆脱一段时间未见过的键的状态,同时仍然保持已见过的键的单个历史状态足够频繁吗?

或者,在这种情况下使用的状态量是否会出现偏差,无法回收与一段时间未见过的键相对应的状态?

我还对 Apache Flink 或 Google Cloud Dataflow 是否支持潜在的解决方案感兴趣。

Flink 和 direct runner 似乎有一些“状态 GC”的代码,但我不太确定它的作用以及它在使用全局窗口时是否相关。

google-cloud-dataflow apache-flink apache-beam

3
推荐指数
1
解决办法
1507
查看次数

Flink CEP:对于不同类型的事件,使用哪种方法加入数据流?

假设我有2种不同类型的数据流,一种提供天气数据,另一种提供车辆数据,我想使用Flink对数据进行复杂的事件处理。

Flink 1.3.x 中哪种方法是正确的使用方法?我看到了不同的方法,如 Union、Connect、Window Join。基本上我只是想尝试一个简单的 CEP,如下所示:

IF weather is wet AND vehicle speed > 60 
WITHIN the last 10 seconds
THEN raise alert
Run Code Online (Sandbox Code Playgroud)

谢谢!

apache-flink flink-cep

3
推荐指数
1
解决办法
780
查看次数

如何统计Apache Flink在给定时间窗口内处理的记录数

在flink中定义一个时间窗口后如下:

val lines = socket.timeWindowAll(Time.seconds(5))
Run Code Online (Sandbox Code Playgroud)

如何计算该特定 5 秒窗口内的记录数?

apache-flink flink-streaming

3
推荐指数
1
解决办法
5569
查看次数

Flink taskmanager 内存不足和内存配置

我们正在使用 Flink 流在单个集群上运行一些作业。我们的工作是使用rocksDB 来保存状态。集群配置为在 3 个独立的 VM 上使用单个 Jobmanager 和 3 个 Taskmanager 运行。每个 TM 都配置为使用 14GB 的 RAM 运行。JM 配置为以 1GB 运行。

我们遇到了 2 个与内存相关的问题: - 当运行具有 8GB 堆分配的 Taskmanager 时,TM 耗尽了堆内存,我们得到了堆内存不足的异常。我们对这个问题的解决方案是将堆大小增加到 14GB。似乎这个配置解决了这个问题,因为我们不再因为堆内存不足而崩溃。- 尽管如此,在将堆大小增加到 14GB(每个 TM 进程)后,操作系统内存不足并杀死 TM 进程。RES 内存随着时间的推移不断增加,每个 TM 进程达到约 20GB。

1.问题是我们如何预测最大物理内存总量和堆大小配置?

2.由于我们的内存问题,使用非默认值的 Flink 托管内存是否合理?在这种情况下,指导方针是什么?

更多详细信息:每个 Vm 配置有 4 个 CPU 和 24GB 的 RAM 使用 Flink 版本:1.3.2

apache-flink flink-streaming

3
推荐指数
1
解决办法
4906
查看次数

什么可能导致 Apache Flink 作业中的屏障对齐持续时间过长?

我在 YARN 上运行我的 Flink 作业,我发现少数子任务的对齐持续时间很长。

什么可能导致这个问题?

apache-flink flink-streaming

3
推荐指数
1
解决办法
509
查看次数

Flink:Jobmanager UI 中设置的并行度与任务槽有什么关系?

假设我有 8 个任务管理器和 16 个任务槽。如果我使用 Jobmanager UI 提交作业并将并行度设置为 8,我是否只使用 8 个任务槽?

如果我有 8 个有 8 个插槽的任务管理器,并以 8 的并行度提交相同的作业怎么办?它是完全一样的吗?或者数据的处理方式有什么不同?

谢谢你。

parallel-processing distributed-computing bigdata apache-flink

3
推荐指数
1
解决办法
792
查看次数

Flink rest api 错误:请求与预期格式 JarRunRequestBody 不匹配

尝试使用下面的 rest api 远程运行 flink 作业,但它抛出错误

curl -X POST -H 'Content-Type: application/json' --data '
{
    "type": "object",
    "id": "urn:jsonschema:org:apache:flink:runtime:webmonitor:handlers:JarRunRequestBody",
    "properties": {
    "programArgsList" : {
      "type" : "array",
      "items" : [
        "input-kafka-server": "****",
        "input-kafka-topics": "****",
        "input-job-name": "****"
      
    }
  }
}
' http://x.x.x.x:8081/jars/810ac968-5d5f-450d-aafc-22655238d617.jar/run
Run Code Online (Sandbox Code Playgroud)

{"errors":["请求与预期格式 JarRunRequestBody 不匹配。"]}

google-cloud-platform apache-flink

3
推荐指数
1
解决办法
1120
查看次数

Flink:MaxOutOfOrderness 和 AllowedLateness 的区别

在 Flink 中,有两件事提供了类似的行为。两者有什么区别。

  1. MaxOutOfOrderness:与 BoundedOutOfOrdernessTimestampExtractor 一起使用。通过将事件时间后面的 Watermark 延迟 MaxOutOfOrderness 值,允许流的元素按 maxOutOfOrdeness 值的大小乱序。
  2. AllowedLateness:在此参数定义的一段时间内保持窗口状态。

当您已经可以通过 maxOutOfOrderness 实现相同的行为时,为什么还要使用 AllowedLateness。

如果您只使用 Allowedlateness,则没有必要等待,因为后期元素将无序,因此将被删除。

如果你只使用 MaxOutOfOrderness,那么它会延迟窗口计算,但它可以处理乱序事件。

apache-flink flink-streaming

3
推荐指数
1
解决办法
532
查看次数

Apache Flink,任务槽数与 env.setParallelism

你能解释一下 Apache Flink v1.9 中任务槽和并行性之间的区别吗?

  • 这是我到目前为止的理解

    • Flink 说 TaskManager 是工作进程。通常每台计算机应该有一个 TaskManager。
    • 假设我有 3 台计算机,它们都有 16 个 CPU 内核。每台计算机都会是TaskManager。因此我将有 3 个 TaskManager
    • 我认为如果一台计算机有 16 个 cpu 内核,那么 TaskManager 最多可以创建 16 个任务槽。因此,那里有一个 CPU 隔离。然而 Flink 说link => "请注意,这里没有 CPU 隔离;当前插槽仅将任务的托管内存分开。 "
    • 这意味着 16 个插槽 = 16 个线程?还有numberOfSlot can be >= numberOfCpuCores
  • 如果任务槽意味着线程,这可能会导致“共享访问数据问题、竞争条件”等。?这是我的第一个问题。

  • 第二个问题是我在文章开头写的问题 => 任务槽和并行性之间的差异。我说的是 env.setparallellism(number)。
    • 假设我的并行数 = 2
    • 然后对于每个任务槽(线程或其他任何东西)将用 2 个线程执行?
      • 如果是这样,这可能会导致“共享访问数据问题、竞争条件”等。?
      • 如果不是,并行性是什么意思?
  • 这是示例。在这个例子中,apply()由于线程环境,我应该关心编写方法吗?:

public class AverageSensorReadings {
 public static void main(String[] args) throws Exception …
Run Code Online (Sandbox Code Playgroud)

java stream apache-flink flink-streaming

3
推荐指数
1
解决办法
2641
查看次数