Question (TL;DR;)
What I am looking for is a way to tell kudu to replicate data away from a directory (/data/0
in the context below), or to decommission a directory. Is it possible?
Context
I have a kudu setup with multiple data directories (all on different disks), eg. /data/0
, /data/1
, /data/2
.
Currently the WALs are on /data/0
, as well as kudu tablets, hdfs directory and yarn local dir. Long story short, this disk is overloaded and I want to migrate away everything except the WALs.
This question relates to the kudu tablet directory. I know how to force remove a disk from the doc but:
If --force is specified, all tablets configured to use that directory will fail upon starting up and be replicated elsewhere.
That sounds OK-ish (tablets will eventually be replicated) but I happen to have a few tables with a replication factor of 1, so those ones would be completely destroyed.
Workarounds
I am aware of a few workarounds, but none of them is ideal:
- I could recreate the tables with a RF of 3
- I could
kudu tablet change_config move_replica
tablets for the tables with RF 1 from eg. server 1 to server 2, then remove the directory for server 1, rebalance, then rinse and repeat from server 2 to 3 and then 3 to 1 (I have only 3 servers). - I could move
/data/0
inside/data/1
(the configuration actually does not use the whole disk, but a subdirectory there) but/data/1
would then receive twice as many IOs.