有时候启动的scala程序或者java程序需要使用kill命令停止,这是又需要再kill的时候销毁一些对象,这时候就需要用到addShutdownHook来触发。
注意⚠️:只有使用kill -15才可以触发
scala写法:
def main(args: Array[String]): Unit = {
val jobConf = new JobConf(HBaseConfiguration.create())
jobConf.set(HConstants.ZOOKEEPER_QUORUM, 0.0.0.0)
jobConf.set(HConstants.ZOOKEEPER_CLIENT_PORT, 80)
jobConf.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/hbase")
jobConf.setOutputFormat(classOf[TableOutputFormat])
val table = new HTable(jobConf, TableName.valueOf("aaa:xxx"))
//kill -15 回调函数
Runtime.getRuntime().addShutdownHook(new Thread(){
override def run(): Unit ={
table.close()
println("HTable has been closed!");
}
})
}