Pregunta

Actualmente estoy usando trabajos de hadoop mapreduce con SequenceFiles de escritura.El mismo tipo de escritura se utiliza para la serialización también en las partes del sistema que no están relacionadas con Hadoop.

Este método es difícil de mantener, principalmente debido a la falta de esquema y la necesidad de manejar manualmente los cambios de versión.

Parece que Apache Avro maneja estos problemas.

El problema es que durante la migración tendré datos en ambos formatos.¿Existe una forma sencilla de manejar la migración?

¿Fue útil?

Solución

En general, no hay nada detenerlo de usar datos de AVRO y secuencios intercambiablemente. Use lo que sea necesario para el tipo de datos que necesita, y para la salida, por supuesto, tiene sentido usar formatos AVRO cuando sea práctico. Si su entrada viene en diferentes formatos, eche un vistazo a MOSTOSIGUTOS . Esencialmente, aún tendrá que implementar mapas separados, pero eso es necesario considerar que la clave de entrada / valor del mapa es diferente.

Mudarse a Avro es un movimiento sabio. Si tiene la capacidad en el tiempo y el hardware, incluso podría valer la pena convertir explícitamente sus datos de SecuenciaFile a Avro de inmediato. Puede usar cualquier idioma compatible con AVRO, que también le sucede a Supports SecuenceFiles para hacer esto. Java ciertamente hace (claramente), pero el cerdo también es bastante útil para hacer esto.

El Proyecto Piggybank aportado por el usuario tiene funcionalidad para leer un archivo de secuencia, y luego es simplemente una cuestión de usar AvRrostorage del mismo proyecto Piggybank con el esquema AVRO apropiado para obtener su archivo AVRO.

Si solo en el cerdo admite la carga de los esquemas AVRO de archivo. Si usa cerdo, desafortunadamente tendrá que formar scripts que contengan explícitamente el esquema AVRO, lo que puede ser un poco molesto.

Otros consejos

No lo he probado yo mismo, pero tal vez usando AvroSequenceFile El formato ayudaría.Es sólo una envoltura alrededor SequenceFile entonces, en teoría, deberías poder escribir datos tanto en tu antiguo SequenceFile formato así como su nuevo Avro formato que debería facilitar la migración.

Aquí está más información sobre este formato.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top