如何选择钻头以使用偏移量运行查询?

时间:2019-03-20 07:13:43

标签: heap-memory distributed apache-drill

例如,我有两个在不同计算机上运行的钻头和一个具有200行的表。是否可以手动选择 drillbit1 来获取前100行,而 drillbit2 使用偏移量查询来获取下100行并获得合并的结果(总共200行)?

因为就我而言,我有一个大约500kb的实木复合地板文件,但是我无法通过Web ui无限获取查询select * from dfs.'/path/to/parquet/file';的结果,因为它返回错误:

RESOURCE ERROR: There is not enough heap memory to run this query using the web interface. 

Please try a query with fewer columns or with a filter or limit condition to limit the data returned. 
You can also try an ODBC/JDBC client.


以下是两个钻头的配置:

  

计算机上的RAM大小= 8G
DRILLBIT_MAX_PROC_MEM =“ 6G”
  DRILL_HEAP =“ 2G”
DRILL_MAX_DIRECT_MEMORY =“ 3G”
Apache Drill版本:1.14.0

为了避免堆内存空间错误,我已经在其他网站上建议运行以下查询:

alter session set planner.width.max_per_node = 1
alter system set planner.width.max_per_query = 2

但是我仍然面临堆空间错误。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您不需要管理钻头执行和合并结果。演练为您内部完成。而且Drill中的数据并不位于Heap上,而是使用Direct内存。堆主要用于钻探计划和执行过程。

看起来像有问题,因为您的钻头内存非常有限。建议的Drill堆大小为4-8G,请在此处查看详细信息:https://drill.apache.org/docs/configuring-drill-memory/

当前,所有Drill单元测试都无法通过用作CI(TravisCI和CircleCI)的8G内存机器通过:https://github.com/apache/drill/blob/master/.circleci/config.yml#L52