在flink InputFormat

时间:2018-06-07 14:17:40

标签: java cassandra apache-flink

我正在处理使用cassandra数据的flink作业。通过执行大量查询(~10k)生成数据。每个查询返回2k记录。现有的CassandraInputFormat不支持ParallelInput,所以我编写了自己的InputFormat,为每个查询生成一个InputSplit。

Datastax建议为相同的群集配置重用相同的会话。问题是cassandra Cluster和Session对象不可序列化。所以目前我正在为每个InputSplit创建一个新的Session,这意味着我正在创建10k会话,这似乎是一个很大的开销。同样能够共享会话意味着我可以使用准备好的语句。

我很想知道是否有一种方法可以在InputSplit中共享会话(并且还可以在一个flink作业中共享此资源)。

否则有没有办法在InputSplit之间重用会话? InputFormat的生命周期不是很清楚,特别是在:

之间
  • RichInputFormat#openInputFormat
  • RichInputFormat #closeInputFormat
  • InputFormat #open
  • InputFormat#靠近

0 个答案:

没有答案