Data usage increases initially when reorganize partition mysql cluster
You're correct that the on-line repartitioning of data temporarily uses extra memory on the data nodes. In most cases the application data is split over many tables and so relatively little memory is needed when repartitioning each table. If the data is in one big table and you don't have the available RAM then there are a number of options...


Perform the data migration yourself in an iterative fashion. e.g.

create cdr2 (....) partition by ...;

loop
{
   insert into cdr2 select * from cdr order by .... LIMIT 1000;
   delete from cdr order by .... LIMIT 1000; } until cdr empty.

Some extra memory will be used, but shouldn't be double.  Best effect would be if the order by .... could follow insert-order in some way.
Backup the data and restore it on another Cluster (with more memory), repartition and then revers the process.
Use mysqldump, empty the table, repartition it and then load the data back in
Convert the table to be disk-based (on-line operation), repartition and then convert it back into an in-memory table
(Temporarily) add extra RAM to the data nodes (this is an on-line operation).


Regards, Andrew.