我在本地运行apache drill 1.0(然后在1.4)有一个16GB的内存的Ubuntu机器。当我有一个非常大的制表符分隔的文件(52万行,7GB)工作,并执行阿帕奇钻不使用最大内存
Select distinct columns[0] from `table.tsv`
,表现似乎在所有相同的查询跑第二次没有改善(都采取53秒)。通常第二次运行相同的查询时,与第一个查询相比,花费的时间不到一半。似乎Drill没有使用所有分配的内存。
我的conf/drill-env.sh文件看起来像:
DRILL_MAX_DIRECT_MEMORY="14G"
DRILL_HEAP="14G"
export DRILL_JAVA_OPTS="-Xms$DRILL_HEAP -Xmx$DRILL_HEAP -XX:MaxDirectMemorySize=$DRILL_MAX_DIRECT_MEMORY -XX:MaxPermSize=14G -XX:ReservedCodeCacheSize=1G -Ddrill.exec.enable-epoll=true"
我也做这个练习中
alter system set `planner.memory.max_query_memory_per_node`=12884901888
然而,当我使用SMEM检查内存使用,它仅使用大约5GB的RAM。
如果我切表的大小只有1万行的,我可以看到3.6秒完成第一个查询和第二次相同的查询运行,它只是1.8秒
我在想什么了?
这并不真正回答这个问题。如果您有其他问题,可以通过单击[提问](https://stackoverflow.com/questions/ask)。你也可以[添加赏金](https://stackoverflow.com/help/privileges/set-bounties)来绘制mor一旦你有足够的[声誉](https://stackoverflow.com/help/whats-reputation),请关注这个问题。 - [来自评论](/ review/low-quality-posts/18547918) –