Apache Kudu为WALs使用的磁盘空间太多

问题描述:

我有一个hive table,它是2.7 MB(以镶木地板格式存储)。当我使用impala-shell将此配置表格转换为kudu时,我注意到/tserver/文件夹大小增加了大约300 MB。在进一步探索之后,我发现它是/tserver/wals/文件夹,它占据了这一增长的大部分。由于这个,我面临严重的问题。如果一个2.7 MB的文件生成一个300 MB的WAL,那么我无法真正处理更大的数据。有针对这个的解决方法吗?Apache Kudu为WALs使用的磁盘空间太多

我的kudu版本是1.1.0,黑斑羚是2.7.0

我从来没有使用过KUDU,但我可以在Google上使用几个关键字,并阅读一些文档。

Kudu configuration reference部分“不支持的标志” ...

--log_preallocate_segments
是否应该WAL写它
默认为true之前预分配整个段

--log_segment_size_mb
日志翻转的默认段大小,单位为MB
默认值64

--log_min_s egments_to_retain
无论 耐用性要求如何,始终保持的最小过去的日志段数。必须至少有1
默认2

--log_max_segments_to_retain
过去的日志段的最大数量保持在所有时间赶上其他 同行的目的。
默认值10

看起来你有(2 + 1)64 MB 每片一个最小盘的要求,只为WAL。如果某些平板电脑出现故障并且无法跟上,它可以增长到10x64 MB。

加上压实一些临时的磁盘空间等等,等等


[编辑]这些默认值已经改变 Kudu 1.4(以2017年6月发布);引用版本说明...

写先行日志(WAL)段的默认大小已从12MB减少到12MB。此外,如果 平板电脑的所有副本都完全保持最新,并且数据已从内存中清除,则 服务器现在将只保留一个WAL段而不是两个。
这些变化有望由16X

减少配置WAL磁盘 磁盘 空间的平均消耗