flink更新hbase时出现数据一致性问题

r55awzrz  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(658)

在类似运算符的Map中,有两个数字具有相同的键。第一个数字从hbase按键获取值,将它们相加,然后通过sink(datastream.write(new hbaseoutputformat(),0l))将新值放入hbase。第二个值做同样的事情。在第一个数字更新到hbase之前,第二个数字是否可能从hbase获取值?如果我把接线员和Flume连在一起,我能避免这个问题吗?如果没有,我该怎么办?谢谢!

xa9qqrwz

xa9qqrwz1#

你需要的是 keyBy 函数,或 groupBy 如果您使用数据集api:请参阅flink文档。这些函数确保一个特定的密钥始终由一个特定的插槽处理。一个插槽代表一个线程,这意味着两个数字是按顺序处理的,即使并行度大于1。
当然,您必须确保对hbase的put操作是阻塞的,因此您不能使用像 BufferedMutator 或异步i/o运算符。

相关问题