Yes - phoenix.query.threadPoolSize is client side property.
And yes - I suggest to set it at hbase-site.xml and provide (via CLASSPATH) 
this config for client Phoenix JDBC driver

Yep, you shoud provide hbase-site.xml to client-side fat JDBC driver

> On 11 Oct 2018, at 16:37, Hemal Parekh <he...@bitscopic.com> wrote:
> 
> I have already set phoenix.query.threadPoolSize in hbase-site.xml which 
> resides on server side. I think phoenix.query.threadPoolSize is a client side 
> property and so should be set from the client application making phoenix 
> connection. Are you suggesting that there should also be a copy of 
> hbase-site.xml on the client machine? 
> 
> On Thu, Oct 11, 2018 at 5:20 AM Batyrshin Alexander <0x62...@gmail.com 
> <mailto:0x62...@gmail.com>> wrote:
> Problem comes from that "phoenix.query.threadPoolSize" can not be set via 
> connection settings. You must set this props via hbase-site.xml.
> Looks like thread pool initialized before any connections inside JDBC driver.
> 
> I think that this moment must be clarified in documentation 
> http://phoenix.apache.org/tuning.html <http://phoenix.apache.org/tuning.html>
>  
> 
>> On 10 Oct 2018, at 18:59, Hemal Parekh <he...@bitscopic.com 
>> <mailto:he...@bitscopic.com>> wrote:
>> 
>> We have an analytical application running concurrent phoenix queries against 
>> Hortonworks HDP 2.6 cluster. Application uses phoenix JDBC connection to run 
>> queries. Often times, concurrent queries fail with 
>> "java.lang.OutOfMemoryError: unable to create new native thread" error. JDBC 
>> connection sets following phoenix properties. 
>> 
>> connectionProps.setProperty("phoenix.query.threadPoolSize", "2000")
>> connectionProps.setProperty("phoenix.query.querySize", "40000")
>> 
>> Phoenix version is 4.7 and Hbase version is 1.1.2, The HDP cluster has six 
>> regionservers on six data nodes. Concurrent queries run against different 
>> phoenix tables, some are small having few million records and some are big 
>> having few billions records. Most of the queries do not have joins,  where 
>> clause includes conditions on rowkey and few nonkey columns. Queries with 
>> joins (which are on small tables) have used USE_SORT_MERGE_JOIN hint. 
>> 
>> Are there other phoenix properties which need to be set on JDBC connection? 
>> Are above values for phoenix.query.threadPoolSize and 
>> phoenix.query.querySize enough to handle concurrent query use case? We have 
>> changed these two properties couple of times to increase their values but 
>> the error still remains the same.
>> 
>> 
>> Thanks,
>> 
>> Hemal Parekh
>> 
>> 
>> 
> 
> 
> 
> -- 
> 
> Hemal Parekh
> Senior Data Warehouse Architect
> m. 240.449.4396
>  <http://bitscopic.com/>

Reply via email to