Estoy tratando de averiguar cómo migrar datos de un clúster Cassandra a otro clúster Cassandra de un tamaño de anillo diferente. .de un clúster de 5 nodos a un clúster de 7 nodos.Cómo migrar datos del clúster Cassandra de tamaño N a un clúster de tamaño diferente N +/- M
Empecé a mirar sstable2json, ya que crea un archivo json para el SSTable en ese nodo específico de cassandra. Mi idea era hacer esto para una familia de columnas en cada nodo del ring. Entonces en un anillo de 5 nodos, esto me da 5 archivos json, un archivo para los datos almacenados en la familia de columnas que reside en cada nodo.
Luego fusionaría los archivos json en un archivo, y usar json2sstable para importar a un nuevo clúster, de tamaño, digamos 7. Esperaba que cassandra luego replicara/balanceara los datos de manera uniforme a través de los nodos en el ring, pero acabo de leer que los SSTables son inmutables una vez que se escriben. Entonces, si hiciera lo que acabo de mencionar, terminaría con un anillo con todos los datos en mi familia de columnas en un nodo.
Entonces, ¿alguien me puede ayudar a descubrir el proceso para migrar datos de un clúster a un clúster diferente de un tamaño de anillo diferente?
Si escribo directamente en el escenario, ¿Cassandra replicará los datos en los otros nodos? Además, si pongo todos los archivos de datos de todos los nodos del anillo en una sola carpeta y ejecuto sstableloader en él, ¿no terminaré con datos duplicados, ya que los datos se replicaron en 3 nodos en el clúster original? – Turbo
Sí, terminará con datos duplicados. La compactación se encargará de eso, por lo que no es un problema. Además: no es necesario "poner todos los archivos de datos en una sola carpeta", simplemente hazlo en el lugar. (Editado para aclarar). – jbellis
Hola, jbellis, gracias por la información. Creo que esta es la ruta a seguir. Para agregar más información sobre mi escenario, estoy usando hadoop en ec2 para generar un modelo de datos y persistirlo en cassandra, también en ec2. Luego, cuando se construya el modelo, llevaré los datos de la casandra a mi red. Crearé un anillo de cassandra bastante grande en ec2 para obtener algunos beneficios de escalabilidad al generar el modelo. Pero el anillo de destino en mi red será más pequeño, probablemente a la mitad. Así que mi plan es bajar los archivos de datos de ec2 a mi red y luego importar los datos. más próximo comentario ... – Turbo