今天在做kudu高可用的时候没有参考官网,直接按照常规方式(添加角色—>编辑属性—>启动)结果发现报错?然后参考了一下文档之后发现这玩意儿还有点玄学,做一下记录。
1.添加两个master。kudu master有leader和follower之分,所以必须是奇数(3或者5),添加之后不要启动不要启动不要启动!!!
2.创建目录并赋权,注意对应到自己创建master的时候的目录
mkdir -p /data1/kudu/master/knwd
mkdir -p /data1/kudu/master/kndd
chown -R kudu:kudu /data1/kudu/master/knwd
chown -R kudu:kudu /data1/kudu/master/kndd
chmod 700 /data1/kudu/master/knwd
chmod 700 /data1/kudu/master/kndd
注意:第一个是wal的目录,第二个是data的目录,一定要和创建kudu master的时候配置的目录一致,修改为自己配置的对应目录。
3.停止kudu所有的服务(master、tablet server等)
4.在原来的master上获取UUID
sudo -u kudu kudu fs dump uuid --fs_wal_dir=/data1/kudu/master/knwd --fs_data_dirs=/data1/kudu/master/kndd 2>/dev/null
2 > /dev/null
的意思是错误输出重定向到空,如果是标准输出就不处理。如果运行了这段代码啥也没有,说明报错了,把2>/dev/null
去掉看看哪里错了。
5.格式化新增的master,并获取UUID
sudo -u kudu kudu fs format --fs_wal_dir=/data1/kudu/master/knwd --fs_data_dirs=/data1/kudu/master/kndd
sudo -u kudu kudu fs dump uuid --fs_wal_dir=/data1/kudu/master/knwd --fs_data_dirs=/data1/kudu/master/kndd 2>/dev/null
6.在原有的master上执行命令重写主机的Raft配置
sudo -u kudu kudu local_replica cmeta rewrite_raft_config --fs_wal_dir=/data1/kudu/master/knwd --fs_data_dirs=/data1/kudu/master/kndd 00000000000000000000000000000000 93277f453ca44959956005520e7a5a4a:cdh01:7051 fc3b427afe1e45d4b7a8a5237312e771:cm01:7051 31a738dfb76b4ec68c265fe56c126b4a:cm02:7051
7.启动原有的master
8.新master节点同步原有master数据
sudo -u kudu kudu local_replica copy_from_remote --fs_wal_dir=/data1/kudu/master/kmwd --fs_data_dirs=/data1/kudu/master/kmdd 00000000000000000000000000000000 xxx:7051
那一串0是必要的,后面接空格,然后是原master的主机名+端口号
9.启动所有master
10.kudu Web查看三个master的角色
参考链接:apache kudu官网链接