我们在spark cluster上运行了一个作业,该作业需要写入hbase。由于hbase连接不能在节点之间共享,所以我生成连接供worker使用。现在我对何时关闭hbase连接有问题。根据hbase最佳实践,如果我知道工人何时结束,我应该自己关闭它。但是,如果工作进程被驱动程序杀死或因任何错误而终止,hbase连接是否会自动关闭?如果没有,在这种情况下,我在哪里处理hbase连接。我知道连接泄漏不好,但不知道如何避免。谢谢。
我们在spark cluster上运行了一个作业,该作业需要写入hbase。由于hbase连接不能在节点之间共享,所以我生成连接供worker使用。现在我对何时关闭hbase连接有问题。根据hbase最佳实践,如果我知道工人何时结束,我应该自己关闭它。但是,如果工作进程被驱动程序杀死或因任何错误而终止,hbase连接是否会自动关闭?如果没有,在这种情况下,我在哪里处理hbase连接。我知道连接泄漏不好,但不知道如何避免。谢谢。
2条答案
按热度按时间wfsdck301#
我想如果遗嘱执行人被杀了,它会抛出一个
java.lang.InterruptedException
,您可以抓住并关闭HBase
优雅地连接。kzmpq1sx2#
您可以尝试以下代码: