van*_*jar 6 apache-spark spark-streaming
在Spark手册中,建议在worker代码中使用共享静态资源(例如连接池).
手册中的示例:
dstream.foreachRDD { rdd =>
rdd.foreachPartition { partitionOfRecords =>
// ConnectionPool is a static, lazily initialized pool of connections
val connection = ConnectionPool.getConnection()
partitionOfRecords.foreach(record => connection.send(record))
ConnectionPool.returnConnection(connection) // return to the pool for future reuse
}
}
Run Code Online (Sandbox Code Playgroud)
在执行程序关闭之前需要释放/关闭静态资源时该怎么办?没有地方可以调用该close()
功能.试过一个关机钩子,但它似乎没有帮助.
实际上我的工作进程当前变成了僵尸,因为我正在使用共享资源创建一个非deamon线程池(HBase异步客户端),这意味着JVM会一直挂起.
我正在使用驱动程序上调用的Spark Streaming graceful shutdown:
streamingContext.stop(true, true);
Run Code Online (Sandbox Code Playgroud)
编辑:
似乎Spark JIRA中存在一个问题,即处理同样的问题
归档时间: |
|
查看次数: |
989 次 |
最近记录: |