在客户端实现ThreadPoolSize的更改-JDBC驱动程序ApachePhoenix

在客户端实现ThreadPoolSize的更改-JDBC驱动程序ApachePhoenix,jdbc,hbase,driver,phoenix,squirrel-sql,Jdbc,Hbase,Driver,Phoenix,Squirrel Sql,我最近使用ApachePhoenix设置了一个JDBC驱动程序来连接HadoopDB。对Squirrel的基本查询工作得很好(例如,“select*from datafile”),但当我询问一个稍微复杂的查询(即,“select column1 from datafile,其中column2='filter1'),我就会遇到以下错误: org.apache.phoenix.exception.PhoenixIOException: Task org.apache.phoenix.job.Job

我最近使用ApachePhoenix设置了一个JDBC驱动程序来连接HadoopDB。对Squirrel的基本查询工作得很好(例如,“select*from datafile”),但当我询问一个稍微复杂的查询(即,“select column1 from datafile,其中column2='filter1'),我就会遇到以下错误:

org.apache.phoenix.exception.PhoenixIOException: Task 
org.apache.phoenix.job.JobManager$InstrumentedJobFutureTask rejected from 
org.apache.phoenix.job.JobManager[Running, pool size = 128, active threads = 
128, queued tasks = 5000, completed tasks = 5132]
通过一些搜索,我似乎应该增加Apache Phoenix hbase.xml配置文件中的ThreadPoolSize以避免此错误,我已经将其从128增加到512。但是,它似乎没有注意到此更改。错误仍然存在,并且错误中的“池大小”仍然为128

在Squirrel中的Phoenix驱动程序设置中,我已经在安装程序的“Extra Class Path”下指出了包含.xml配置文件的hbase和hdfs目录的位置

有没有办法让驱动程序“注意到”线程池大小已更改


谢谢!

有几件事需要检查

  • 确保您的phoenix客户端jar与phoenix服务器的版本兼容
  • 从您的hbase主节点获取hbase-site.xml(确保phoenix线程池大小设置与主节点同步),并添加到phoenix jar文件(使用7zip),然后再次尝试运行squirrel客户端

  • 我在这个问题上花了很多时间

    第一步是对查询运行
    explain
    ,并查找chunks编号(例如:CLIENT 4819-CHUNK):

    解释选择行总和(第2行),其中日期=截止日期(“2018-01-01”);


    • 检查表中区域和/或路标的数量
    • phoenix.stats.guidepost.width
      属性设置为大于其默认大小
      100MB
      的值,然后重新启动HBase区域服务器以应用更改
    • 通过运行以下命令更新表统计信息:
      jdbc:phoenix…>更新我的统计表

    在Ambari/hbase配置中设置以下值:

    phoenix.query.threadPoolSize:
    为每个查询运行的并发线程数,应设置为群集中客户端/区域服务器上的vCore数

    phoenix.query.queueSize:
    要为任何队列运行的任务的最大队列深度,超过此深度,将拒绝对其他工作进行排队的尝试。将此属性值设置为等于表的“chunk”数,如“explain”命令输出中所示

    参考文献

    +------------------------------------------------------------------------------+
    |                                                PLAN                          |
    +------------------------------------------------------------------------------+
    | CLIENT 4819-CHUNK 2339029958 ROWS 1707237752908 BYTES PARALLEL 4819-WAY FULL |
    |     SERVER FILTER BY "THE_DATE" = DATE '2018-01-01 01:00:00.000'           |
    |     SERVER AGGREGATE INTO DISTINCT ROWS BY ["THE_DATE"]                    |
    | CLIENT MERGE SORT                                                            |
    +------------------------------------------------------------------------------+
    4 rows selected (0.247 seconds)