关于KUDU 的一些使用建议
1. Kudu 的分区字段选择:
正常的分区字段就是Kudu 表的主键字段进行范围分区或者hash分区,这里建议加上一个 与业务时间有关的字段作为联合主键,这样可以缓解数据倾斜。
有人建议使用 主键进行hash 分区,时间字段进行范围分区。
2. WAL 的存储目录:
官方建议,WAL最好是单独用闪存盘给Kudu 的WAL 搞一个存储目录。但是一般能给到SSD就算不错了,实在不行搞HHD也行,就是慢点嘛。
WAL 所在的磁盘最好是单独的,容量当然这个得根据你自己的集群来看,如果是HHD,磁盘容量又很大比如8T 4T 这样子,就不要让 WAL一个人用了,太浪费。
3. 关于Kudu 的存储磁盘是否要和Hdfs 的分开:
这个东西的,说法不一,磁盘都分开确实对两个组件好,能避免IO争用,但是带来的弊端就是维护麻烦,后期无论是哪个组件的磁盘满了,你想到时候在进行数据迁移就麻烦了。
Kudu 和Hdfs 的的存储磁盘放在一起的好处是什么呢,Hdfs 自己有一套数据平衡策略,即将DataNode 所占用的磁盘尽可能的平均化,这样依靠着这个平衡策略,磁盘空间能得到最大化的利用,单个磁盘容量不足的情况就会降低到最少。
4. 基本性能调优:
- 内存限制开到 24G以上;
- 维护管理器线程数设置为磁盘数的 1/3 或以上。
题外话:
Kudu 当一个副本丢失时,默认会采取 3-4-3 的复制策略,在特殊情况下也会采取 3-2-3 的复制策略。
kudu 的编码和压缩策略蛮好的