Spark流:使用hbaseMapPartitions时关闭HBase连接

时间:2017-05-23 20:05:12

标签: apache-spark streaming hbase

在我的Spark流应用程序中,我使用HBaseContext将一些值放入HBase,每个处理过的消息都有一个put操作。

如果我使用hbaseForeachPartitions,一切正常。

 dStream
  .hbaseForeachPartition(
    hbaseContext,
    (iterator, connection) => {
      val table = connection.getTable("namespace:table")
      // putHBase is external function in the same Scala object
      val results = iterator.flatMap(packet => putHBaseAndOther(packet))
      table.close()
      results
    }
 )

与hbaseMapPartitions相反,与HBase的连接已关闭。

 dStream
  .hbaseMapPartition(
    hbaseContext,
    (iterator, connection) => {
      val table = connection.getTable("namespace:table")
      // putHBase is external function in the same Scala object
      val results = iterator.flatMap(packet => putHBaseAndOther(packet))
      table.close()
      results
    }
 )

有人可以解释我为什么?

0 个答案:

没有答案