【问题标题】:How long can we keep IMPALA JDBC connection open?我们可以保持 IMPALA JDBC 连接打开多长时间?
【发布时间】:2021-05-11 19:41:01
【问题描述】:

我们有一个使用 impala jdbc 连接运行少量 SQL 的 spark 应用程序。应用程序在不同的时间完成,例如 15 分钟、1 小时和 3 小时(最长)。

我们可以在作业完成之前打开 JDBC 连接还是需要在短时间内关闭和打开?

【问题讨论】:

    标签: sql apache-spark jdbc connection impala


    【解决方案1】:

    自从我看到这个已经有一段时间了,我没有看到其他答案,所以我认为 IMPALA 正在随着云的进步而衰落。无论如何。

    1. Afaik 你在当前查询的完整处理过程中保持连接打开,这很有意义。但 Spark 应用程序可能有多个 Impala 查询和处理,它们之间与 IMPALA 无关。

    2. 在 Spark (3) 中,你有这个 JDBC 参数:

    queryTimeout 驱动程序等待的秒数 要执行到给定秒数的语句对象。零意味着 没有限制。在写路径中,这个选项取决于JDBC如何 驱动程序实现 API setQueryTimeout,例如,h2 JDBC 驱动程序 检查每个查询而不是整个 JDBC 批处理的超时。它 默认为 0。

    但这不太相关。

    1. 在服务器端 - impalad,您有各种设置。见https://docs.cloudera.com/documentation/enterprise/latest/topics/impala_timeouts.html#impalad_timeout/

    2. 对于资源池,这些参数要么设置为 0,要么不设置。

    3. 当您通过 Spark 为 IMPALA 提供 jdbcURL 时,请确保您请求具有适当设置的池(请求池),这样您就不会超时。我不确定您是否可以通过 sessionInitStatement(用于查询级别)通过 Spark 执行此操作,很可能可以,但您可能有具有不同特征的不同查询。

    所以,这更像是一个配置问题。

    【讨论】:

      猜你喜欢
      • 2015-08-09
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 2016-05-26
      • 2021-02-12
      相关资源
      最近更新 更多