2

海我是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() + "' ";
} 
4

2 回答 2

1

你真的不应该使用以 % 开头的 LIKE 条件。在大多数情况下,这会导致性能问题!尝试压制它,然后告诉我们它是否能解决您的问题。

这里有一些线索:LIKE work-around in SQL (Performance issues),即使不处理这个主题。

于 2012-07-23T20:18:35.180 回答
0

连接的处理取决于 Hive Metastore Server。它应该安装在强大的服务器上,或者如果您在虚拟机上工作,请尝试增加 vm 的内存或 cpu。另外,尝试查看 Hive Metastore 服务器日志,是否存在内存或性能错误。(?)或者,您可以在 CDH 5.3.x 支持的多服务器环境中使用 Hive Metastore 服务器的两个实例和上。

于 2015-11-24T14:13:45.590 回答