蜂巢连接
问题描述:
海我是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() + "' ";
}
答
你真的不应该使用由%开始的LIKE条件。在大多数情况下,这会导致性能问题! 试着压制它,然后告诉我们它是否能解决你的问题。
这里有一些线索:LIKE work-around in SQL (Performance issues),即使不处理这个问题。
答
处理连接取决于Hive Metastore服务器。它应该安装在强大的服务器上,或者如果您在虚拟机上工作,请尝试增加虚拟机的内存或CPU。 (?) 或者,您可以在CDH 5.3支持的多服务器环境中使用两个Hive Metastore Server服务器实例,并且可以使用两个Hive Metastore Server服务器实例。 x和上面。
你确定麻烦来自那里吗?我不是Hive Expert,但是从我的数据库经验来看,它最有可能是一个查询概念问题,而不是Java问题。你可否请你发表你的要求? – 2012-07-20 15:56:02
stmt = connection.createStatement(); String queryString =“从twitter_stats中选择feed_date,count(feed_date),其中tweet like'%”+ searchRequest.getWord()+“%'”; (null!= searchRequest.getFromDate()){queryString + =“and feed_date> ='”+ searchRequest.getFromDate()+“'”; } – najeeb 2012-07-23 04:03:28
这是好的让雷米 – najeeb 2012-07-23 04:04:43