问题(TL;DR;)
我正在寻找的是一种告诉 kudu 将数据从目录中复制出来(/data/0
在下面的上下文中)或停用目录的方法。可能吗?
语境
我有一个带有多个数据目录(都在不同磁盘上)的 kudu 设置,例如。/data/0
, /data/1
, /data/2
. 目前 WALs/data/0
以及 kudu tablet、hdfs 目录和 yarn 本地目录都在。长话短说,这个磁盘超载了,我想迁移除 WAL 之外的所有东西。
这个问题与 kudu tablet 目录有关。我知道如何从文档中强制删除磁盘,但是:
如果指定了 --force,所有配置为使用该目录的平板电脑将在启动时失败并在其他地方复制。
这听起来不错(平板电脑最终会被复制),但我碰巧有一些复制因子为 1 的表,所以这些表将被完全销毁。
解决方法
我知道一些解决方法,但没有一个是理想的:
- 我可以重新创建 RF 为 3 的表
- 我可以
kudu tablet change_config move_replica
使用例如 RF 1 为桌子制作平板电脑。服务器 1 到服务器 2,然后删除服务器 1 的目录,重新平衡,然后冲洗并重复从服务器 2 到 3,然后从 3 到 1(我只有 3 台服务器)。 - 我可以移动
/data/0
到内部/data/1
(配置实际上并不使用整个磁盘,而是使用那里的一个子目录),但/data/1
随后会收到两倍的 IO。