Hi there,

I am very glad Kudu is evolving so rapidly. Thanks for your contributions!

I have faced with a challenge:
I need to upgrade (reinstall) prod servers, where 3 Kudu masters are running. 
What would be the best way to do it from Kudu perspective?
If it is not officially supported yet, could you advise a way, which minimizes 
the risks?

Environment/conditions:
Cloudera 5.14
Kudu 1.6
High-level procedure: remove 1 server from cluster, upgrade, return back to CM 
cluster, check, proceed with the next server.
Some downtime is possible (let's say < 1h)

Approach:

I have already tried out at test cluster the steps, which were used to migrate 
from a single-master to multi-master cluster (see the plan below). However, 
there was a remark not to use it in order to add new nodes for 3+ master 
cluster.
Therefore, what could be an alternative way? If no alternatives, what could be 
the extra steps to pay additional attention to check the status if Kudu cluster 
is in a good shape?
Any comments/suggestions are extremely appreciated as well.

Current plan:

0.       Cluster check

1.       Stop all masters (let's call them master-1, master-2, master-3).

2.       Remove from CM one Kudu master, e.g. master-3.

3.       Update raft meta by removing "master-3" from Kudu cluster (to be able 
to restart Kudu):
sudo -u kudu kudu local_replica cmeta rewrite_raft_config 
00000000000000000000000000000000 1234567890:master-1:7051 
0987654321:master-2:7051
By the way, do I understand right that tablet_id 
00000000000000000000000000000000 is a special, containing cluster meta info?

4.       Start all masters. From now Kudu temporary consists of 2 masters.

5.       Cluster check.

6.       Upgrade the excluded server

7.       Stop all masters.

8.       Prepare "master-3" as Kudu master:
sudo -u kudu kudu fs format --fs_wal_dir=...  --fs_data_dirs=...
sudo -u kudu kudu fs dump uuid --fs_wal_dir=...  --fs_data_dirs=... 2>/dev/null
Let's say obtained id is 7777777777.
Add master-3 to CM.

9.       Run metainfo update at existing masters, i.e. master-1 and master-2:

sudo -u kudu kudu local_replica cmeta rewrite_raft_config 
00000000000000000000000000000000 1234567890:master-1:7051 
0987654321:master-2:7051 7777777777:master-3:7051

10.   Start one master, e.g. master-1.

Copy the current cluster state from master-1 to master-3:
sudo -u kudu kudu local_replica copy_from_remote --fs_wal_dir=...  
--fs_data_dirs=... 00000000000000000000000000000000 1234567890:master-1:7051

11.   Start remaining Kudu masters: master-2 and master-3.

12.   Cluster check.

* Optionally, at first there may be added 1 extra node (to increase from 3 to 4 
the initial number of Kudu masters, so that after removal of 1 node there are 
still HA with quorum of 3 masters). In this case steps 7-12 should be repeated 
and additionally HiveMetaStore update should be executed:
UPDATE hive_meta_store_database.TABLE_PARAMS
SET PARAM_VALUE = 'master-1,master-2,master-3'
WHERE PARAM_KEY = 'kudu.master_addresses' AND PARAM_VALUE = 
'master-1,master-2,master-3,master-4';
              After upgrades, the master-4 node to be removed by running steps 
1-5.

Thanks!

Best regards,
Sergejs Andrejevs
Information about how we process personal data<http://www.intrum.com/privacy>

Reply via email to