问题一:flink1.14的网络缓存消胀机制,如果只是逻辑减少buffer的大小,这是不是会导致内存浪费?
flink1.14的网络缓存消胀机制,如果只是逻辑减少buffer的大小,并物理的大小不变,这是不是会导致内存浪费?它是会改变所有的subtask的buffer大小吗?还是只有某个subtask?
参考答案:
Flink 1.14的网络缓存消胀机制主要是通过减少每个subtask的buffer大小来降低网络传输和内存占用。如果只是逻辑减少buffer的大小,而物理的大小不变,这可能会导致内存浪费。因为缓冲区的大小是固定的,即使减少了逻辑上的缓冲区大小,物理上的空间仍然会被占用。
在 Flink 中,网络缓存消胀机制会改变所有的 subtask 的 buffer 大小。具体来说,它会计算所有 subtask 的缓冲区大小总和,然后根据需要减少的逻辑缓冲区大小来计算新的缓冲区大小。这样,每个 subtask 的缓冲区大小都会相应地减小,从而降低网络传输和内存占用。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/585885
问题二:请教一下,flink on yarn模式下,怎么对job作业进行指标监控?
请教一下,flink on yarn模式下,怎么对job作业进行指标监控?
参考答案:
这些指标flink 不是自带 吐出来了吗,你配置吐出到promthus pushgateway 就好了
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/585884
问题三:有什么办法让flink在windows运行,单机都行?
有什么办法让flink在windows运行,单机都行?
参考答案:
首先,您需要从Flink官网或者Apache的存档站点下载Flink安装包。以Flink 1.9.0版本为例,您可以在https://archive.apache.org/dist/flink/下载对应版本的压缩包,然后解压到合适的目录,例如D:\flinkflink-1.9.0。
接着,您需要准备Java环境,因为运行Flink需要Java 7.x或更高版本,并且操作系统需要Windows 7或更高版本。
然后,您可以通过命令行进入Flink的bin目录,运行start-cluster.bat来启动Flink。您也可以直接在浏览器中输入localhost:8081(如果8081端口被占用,可以尝试修改为其他端口,比如8778)来访问Flink的Web界面。
此外,Flink也自带了一些示例程序,位于example目录下,您可以通过命令行运行flink.bat run ../examples/batch/WordCount.jar来执行这些示例程序。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/585879
问题四:想问下Flink sql作业支持写判断语句吗,根据标志执行删除,或是更新或是插入?
想问下Flink sql作业支持写判断语句吗,根据标志执行删除,或是更新或是插入?
参考答案:
是的,Flink SQL支持写判断语句。您可以使用CASE WHEN THEN ELSE END语句来实现条件判断和执行删除、更新或插入操作。
例如,假设您有一个名为my_table的表,其中包含id、name和age三个字段,现在您想根据一个标志位flag来执行不同的操作:
INSERT INTO my_table (id, name, age) SELECT id, name, age FROM source_table ON CONDITION flag = 'delete' THEN DELETE FROM my_table WHERE id = source_table.id; ELSE UPDATE my_table SET name = source_table.name, age = source_table.age WHERE id = source_table.id; END;
上述代码中,当flag为'delete'时,会从source_table中读取数据并删除my_table中对应的记录;否则,会更新my_table中的记录。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/585878
问题五:想问下我这边Flink在keyby之后数据还是有的,但是到后面的流程里数据就没有了,这是什么原因?
想问下我这边Flink在keyby之后数据还是有的,但是到后面的流程里数据就没有了,这是什么原因?
参考答案:
楼主你好,看了你的描述,需要你检查keyBy操作是否正确,确保keyBy操作正确指定了正确的键字段或键表达式,并且返回的键值不为null,如果键值为null,数据将无法正确分区。
然后再检查是否有过滤操作,查看下一步操作是否包含过滤操作,如果过滤条件不满足,数据将会被过滤掉。
关于本问题的更多回答可点击进行查看: