首页 文章

Apache Kudu用于WAL的磁盘空间太多

提问于
浏览
0

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

我的 kudu 版本是 1.1.0 ,impala是 2.7.0 .

1 回答

  • 1

    我从来没有使用过KUDU,但是我可以通过谷歌搜索一些关键词,并阅读一些文档 .

    来自Kudu configuration reference部分"Unsupported flags" ...

    --log_preallocate_segments WAL是否应在写入之前预先分配整个段默认值true --log_segment_size_mb日志滚动的默认段大小,以MB为单位默认值64 --log_min_segments_to_retain始终保留的最小过去日志段数,无论耐用性如何 . 必须至少为1.默认值2 --log_max_segments_to_retain为了追赶其他对等项,始终保留的最大过去日志段数 . 默认10

    看起来每台平板电脑的最小磁盘要求为(2 1)x64 MB,仅适用于WAL . 如果某些平板电脑正在分散并无法赶上,它可以长到10x64 MB .

    加上一些临时磁盘空间用于压实等 .


    [Edit] 这些默认值在 Kudu 1.4 (2017年6月发布)中已更改;引用发行说明......

    Write Ahead Log(WAL)段的默认大小已从64MB减少到8MB . 此外,如果平板电脑的所有副本都是最新的并且数据已从内存中刷新,则服务器现在只保留一个WAL段而不是两个 . 预计这些更改会将配置的WAL磁盘上的磁盘空间平均消耗减少16倍

相关问题