共享配置单元JDBC连接的最佳实践是什么

共享配置单元JDBC连接的最佳实践是什么,jdbc,hadoop,connection-pooling,hive,hdfs,Jdbc,Hadoop,Connection Pooling,Hive,Hdfs,我使用HiveJDBC驱动程序对我的HDFS数据存储进行类似sql的查询。我一直在尝试使用c3p0来处理连接池。我不太确定这是不是正确的方法,因为配置单元查询有时会花费很长时间,这意味着连接将被保留很长时间而不会释放回池,我也在努力为c3p0配置中的最大连接数想出一个正确的设置数 是否有将配置单元jdbc连接池化的最佳实践?c3p0?DBCP 最大泳池大小如何?它是否应该大于RDB的正常设置 哦,太好了,那么你提到的帖子中的问题其实是我很久以前问的: 看看如何在您的用例中使用它会很有趣 但让我告

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

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


最大泳池大小如何?它是否应该大于RDB的正常设置

哦,太好了,那么你提到的帖子中的问题其实是我很久以前问的: 看看如何在您的用例中使用它会很有趣

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

公平共享调度器背后的核心思想是将资源分配给作业,以便随着时间的推移,每个作业平均获得可用资源的同等份额


容量调度器与公平调度器有一些相同的原则,但也有明显的区别。首先,为大型集群定义了容量调度,这些集群可能有多个独立的使用者和目标应用程序。在容量调度中,创建了多个队列,而不是池,每个队列都具有可配置数量的map和reduce插槽。每个队列还被分配一个保证容量,其中集群的总容量是每个队列容量的总和。第二,在队列中对作业进行优先级排序的能力。最后是对队列的严格访问控制。

谢谢您提供的信息。我在这里仍然有点困惑,如果我将10个JDBC连接汇集到Hive,这是否意味着我并行地打开了10个Hive作业?一旦工作完成,它会发生什么?jdbc连接被释放回池?下一次新查询将采用jdbc连接并具有新的配置单元作业时?在这里使用jdbc连接池有什么好处,仅仅是创建/删除jdbc连接?到目前为止,我所了解的是,您可以打开到MySql的多个连接或Hive用作元存储的任何DBMS,但底线是,当您启动复杂查询时,hive将反过来创建MapReduce作业,以从hive仓库获取结果,在您的案例中是在HDFS中。继续…我使用的池有点像线程。我保留了到hive a服务器的10个线程连接,这取决于集群的容量。如果查询显示“从员工中选择姓名”,则会占用一个线程。另一个这样的查询,会说,占用了一个线程等等。当查询完成时,我会将与该查询关联的线程签入返回到线程池。顺便问一下,您接受了自己的答案吗?我从未见过这种事发生得更早Dyeah,那是在你的评论出现之前,现在你应该得到绿色的tic:那么你没有将jdbc连接集中到metastore?