jdbc - 汇集 Hive JDBC 连接的最佳实践是什么

标签 jdbc hadoop connection-pooling hive hdfs

我正在使用 Hive JDBC 驱动程序对我的 HDFS 数据存储执行类似 sql 的查询。我一直在尝试使用 c3p0 来处理连接池。我不太确定这是正确的方法,因为 Hive 查询有时会花费很长时间,这意味着连接将保持很长时间而不被释放回池中,我正在努力为最大数量想一个正确的设置数字c3p0 配置中的连接也是如此。

是否有池化配置单元 jdbc 连接的最佳实践? c3p0? DBCP?

MAX_POOL_SIZE 怎么样?它应该大于 RDB 的正常设置吗?

最佳答案

太好了,所以你提到的线程中的问题实际上是我很久以前问过的:) 看看如何在您的用例中使用它会很有趣。

但让我告诉您,Hive 会根据您的查询在需要时启动 Hadoop 作业。 所以,如果你想执行多个查询,我相信这是你想在这里做的,你需要使用一个可以同时运行多个作业的作业调度程序。 Hadoop 默认使用先进先出 (FIFO) 调度程序,从工作队列中提取作业。所以,想切换到公平调度器或容量调度器。

公平共享调度程序背后的核心思想是将资源分配给作业,这样平均而言,随着时间的推移,每个作业都会获得相等份额的可用资源。

容量调度器共享公平调度器的一些原则,但也有明显的差异。首先,容量调度是为大型集群定义的,它可能有多个独立的消费者和目标应用程序。在容量调度中,创建了几个队列而不是池,每个队列都有可配置数量的映射和减少槽。每个队列还分配了一个保证容量(集群的总容量是每个队列容量的总和)。其次,能够对队列中的作业进行优先排序。最后,是对队列的严格访问控制。

关于jdbc - 汇集 Hive JDBC 连接的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9997437/

相关文章:

java - 我想使用java打印excel中的异常计数总数

oracle - 勺子 : import data from Oracle

java - 复合 key 正在更改,Hadoop Map-Reduce?

datasource - Quartz 调度程序不会在 AWS RDS 故障转移上更新数据库连接

java - 这个 Java JDBC 程序有什么问题?

arrays - 在 Hadoop 中自定义 TwoDArrayWritable 并且无法在 reducer 中对其进行迭代

java - Hadoop 2( yarn )。获取 java.io.IOException : wrong key class. 异常

java - DBCP : removeAbandoned VS eviction

java - 实现自定义连接池?

sql - SQL选择项跨越整个属性范围