首页 > 解决方案 > 在读取大量 json 文件并输出到单个文件时,是否有任何设置可以避免在 apache Drill 中使用所有内存?

问题描述

我可以知道是否有任何设置可以避免在读取许多大型 json 文件(每个文件 20kb,100k+)并输出到文件时使用所有直接内存进行钻取?

例如,通过运行如下查询,假设 stroageplugin.root 中有 2k 个 json 文件。/inputpath/,每个文件的“内容”属性中都有大约 40k 字节的字符串。该查询将消耗大约 80MB 的直接内存来完成此操作。如果有 100k 的 json 文件,查询将消耗 4GB 的直接内存来完成。

当将大量文件合并到一个文件中时,我们是否有办法减少这里的直接内存消耗?

创建表 stroageplugin.output。/outputpath/AS SELECT Id,CreatedTime,来自 stroageplugin.root 的内容。/inputpath/;

标签: apache-drill

解决方案


您可以使用环境变量配置内存设置(或<drill_installation_directory>/conf/drill-env.sh直接配置):

DRILL_HEAP=8G
DRILL_MAX_DIRECT_MEMORY=10G
DRILLBIT_CODE_CACHE_SIZE=1024M

https://drill.apache.org/docs/configuring-drill-memory/


推荐阅读