例如,我有两个在不同计算机上运行的钻头和一个具有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
但是我仍然面临堆空间错误。任何帮助将不胜感激。
答案 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