我们知道创建Apache Livy连接很昂贵。它将创建新的应用程序并上传任务文件。
我的情况是用户可以提交作业使用我的网页Api用Java编写,然后我使用Apache Livy Client提交作业来激发。
我想保留一个或修复Livy客户端实例,我可以像连接池一样检查客户端状态。
答案 0 :(得分:1)
如果您的工作是有限的工作单元,那么您应该使用Livy的Batch
抽象而不是Session
。 Session
用于交互式工作(例如Jupyter Notebook或Apache Zeppelin),其中用户提交一些查询,评估结果并提交更多。另一方面,Batch
最类似于您通常使用spark-submit
可执行文件提交的内容;它也将在完成工作任务后自行结束,并在执行后自行清理,因此不需要连接池。也就是说,连接池对于Session
来说意义不大,因为每个会话都有一个状态(在该会话中运行的过去语句中定义的变量),而该状态不是(也不应该)共享