问题一:使用RedisSink无法将读取的Kafka数据写入Redis中
现在我所在的项目组在调研Flink框架,有一个指标需要读取Kafka中的数据然后使用Redis存储最终的结果。 我们在pom文件中引入了flink-redis的connector,然后按照官方的RedisSink案例,在本地开发的时候可以正常写入到某台服务器上的Redis中, 但是当我把程序打成Jar包之后,部署到服务器(华为云MRS)上使用flink run提交到yarn之后总是在报错,无法写入到Redis中,各位知道是为什么吗? 问题已经卡了我两天了,一点进展都没有,有劳各位帮忙解答一下,Thank you! 报错如下: redis.client.jedis.exceptions.JedisConnectionException:Could not get a resource from the pool at ..... *来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/370077?spm=a2c6h.13066369.question.43.33bf585fa51mJr
问题二:为什么要关闭calcite的隐式转换功能
目前flink sql,flink hive sql都不支持隐式转换功能。我们在调试的时候发现其实calcite本身是支持的。但是flink这边强制关闭了。而hive本身是支持隐式转换的。这导致我们的hive任务无法迁移到flink上执行。请问关闭的原因是什么?如果我们这边开启会带来什么问题吗? *来自志愿者整理的flink邮件归档
参考答案:
我理解可能是calcite隐式类型转换功能还比较新,暂时没有启用。不过即使开启
了跟hive的隐式转换逻辑也不一定完全一致,比如某些hive允许的转换calcite可能不允许。目前社区也在做hive语法兼容的工作,这个功能有了以后迁移hive任务会更容易。
*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/370078?spm=a2c6h.13066369.question.42.33bf585fKWFQdd
问题三:flinksql维表join之后不能做些过滤这样的操作吗?
rt*来自志愿者整理的flink邮件归档
参考答案:
你是需要对维表里面的某些字段进行计算过滤等吗,可以参考:https://github.com/apache/flink/blob/53a4b4407816c2780fed2f8995affbebc1f58c3c/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/runtime/stream/sql/LookupJoinITCase.scala#L162 *来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/370079?spm=a2c6h.13066369.question.45.33bf585frZU2wb
问题四:使用DataStream → IterativeStream → DataStream 出问题
想请教各位一个问题:目前有一个这样的需求:
两个事实流A 和B, 需要使用B 去关联A 。现在A的消息可能比B或早或晚达到,时间长度最长可能晚两天。
目前方案是:StreamA connect StreamB , 将A、B分别去对方的mapstate中去关联,关联上则下发,关联不上则写入自己的mapstate中,等待对方来关联。但是目前还是存在一些误差,猜测是 部分AB的消息同时到达同时写入自身的mapstate中,无法触发关联下发。
所以目前在想了另一个方案: 将 流A写入外部kv(tair)存储中, 然后用B采用.iterate()的方式持续去关联tair。现在有个疑问,比如有部分数据关联不上,那么B中有消息产生死循环持续运行关联,这个问题有没有什么好的解决方案
*来自志愿者整理的flink邮件归档
参考答案:
我认为你后提出的那个方法没用,不清楚你想怎么做。
这个问题本身用你的第一个方法是没问题的,误差可以再分析下,不存在你说的2个同时写入的逻辑(flink的task是单线程,不会有并发问题)。
其次,你说的第一种方法(connect)的方式,flink本身就提供了现成的实现的,即intervalJoin,貌似不需要你自己去实现。
*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/370080?spm=a2c6h.13066369.question.46.33bf585f8zEBHs
问题五:生产hive sql 迁移flink 11 引擎,碰到的问题
最近尝试把一个生产 hive sql 任务,执行引擎切换成 flink 1.11.2 ,发现flink 11 对hive SQL的支持有下列问题1、不支持 双引号 表示字符串
2、不支持 != 表示不等运算
3、不支持 类型隐式转换
4、不支持 split 函数
5、hive 不区分大小写,flink区分大小写
6、join右表 不支持是一个子查询(Calcite bug https://issues.apache.org/jira/browse/CALCITE-2152)
7、不支持 create table table1 as select * from pokes; 中的 as
暂时只测到这些问题。总体感觉flink11 对 hive SQL的语句支持还不够,无法把已有离线 hive sql 任务直接 切换到flink 引擎。 *来自志愿者整理的flink邮件归档
参考答案:
Hi,
Flink SQL 1.11 暂时还不兼容 Hive SQL 语法。这个功能的设计,最近才在社区中讨论,预计1.13中支持。可以关注下这个
design 的讨论: http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-FLIP-152-Hive-Query-Syntax-Compatibility-td46928.html *来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/370081?spm=a2c6h.13066369.question.47.33bf585fTmSkdl