apache-drill - 在读取大量 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/
;
解决方案
您可以使用环境变量配置内存设置(或<drill_installation_directory>/conf/drill-env.sh
直接配置):
DRILL_HEAP=8G
DRILL_MAX_DIRECT_MEMORY=10G
DRILLBIT_CODE_CACHE_SIZE=1024M
推荐阅读
- java - 后台部分并发标记扫描 GC 释放
- c - 无法执行 Connected Object/ Island 程序
- windows - 应用程序仍在后台进程中显示
- javascript - JS缩短使用对象创建数组
- html - 如何水平对齐 div 旁边的图像
- cassandra - 未找到请求的操作集的 Spring Data Cassandra 编解码器
<-> java.util.Set - mysql - sql中的时差计算
- javascript - javascript - 在特定字符串之后和下一个冒号之前检索字符串
- asp.net-mvc - ASP.NET 引导导航栏样式
- jquery - 希望 youtube 视频在悬停时播放,但也不在暂停时显示建议的视频