Hai我是hadoop和hive的新手。我的应用程序现在无法处理多个连接。当数量连接增加(超过4)时,它变慢。任何人都可以搞清楚。代码如下。
public static void setupDriver(String connectURI) throws Exception {
ObjectPool connectionPool = new GenericObjectPool(null);
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(
connectURI, username, password);
@SuppressWarnings("unused")
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(
connectionFactory, connectionPool, null, null, false, true);
Class.forName(poolingDriver);
PoolingDriver driver = (PoolingDriver) DriverManager.getDriver(poolConnection);
driver.registerPool(poolName, connectionPool);
}
stmt = connection.createStatement();
String queryString = "select feed_date,count(feed_date) from twitter_stats where tweet like '%" + searchRequest.getWord() + "%' ";
if (null != searchRequest.getFromDate()) {
queryString += "and feed_date >= '" + searchRequest.getFromDate() + "' ";
}
答案 0 :(得分:1)
你真的不应该使用以%开头的LIKE条件。在大多数情况下,这将导致性能问题! 试着压制它,然后告诉我们它是否能解决你的问题。
这里有一些线索:LIKE work-around in SQL (Performance issues),即使不处理这个问题。
答案 1 :(得分:0)
连接的处理取决于Hive Metastore Server。它应该安装在强大的服务器上,或者如果您在虚拟机上工作,请尝试增加您的虚拟机内存或CPU。 此外,尝试查看Hive Metastore服务器日志,是否存在内存或性能错误。(?) 或者,您可以在多服务器环境中使用两个Hive Metastore Server实例,CDH 5.3.x及更高版本支持该实例。