Existe-t-il un moyen simple de migrer de SequenceFiles vers Avro ?
-
21-12-2019 - |
Question
J'utilise actuellement des tâches hadoop mapreduce avec des SequenceFiles d'écritures.Le même type Writable est également utilisé pour la sérialisation dans les parties du système non liées à Hadoop.
Cette méthode est difficile à maintenir, principalement en raison du manque de schéma et de la nécessité d'une gestion manuelle des modifications de version.
Il semble qu'Apache Avro gère ces problèmes.
Le problème est que lors de la migration, j'aurai des données dans les deux formats.existe-t-il un moyen simple de gérer la migration ?
La solution
En règle générale, rien ne vous empêche d'utiliser des données et des séquences d'avreurs interchangeables. Utilisez tout Inparformat nécessaire pour le type de données dont vous avez besoin et pour la sortie, il est logique d'utiliser des formats d'avreurs chaque fois que pratiques. Si votre entrée est disponible dans différents formats, jetez un coup d'œil à
Déménager à Avro est un geste sage. Si vous avez la capacité dans le temps et le matériel, cela pourrait même valoir la peine de convertir explicitement vos données de la séquencefile à Avro immédiatement. Vous pouvez utiliser n'importe quelle langue prise en charge par Avro qui prend également en charge les séquences pour le faire. Java fait certainement (clairement), mais le porc est également assez pratique pour le faire.
Le projet de piggybank fournie par l'utilisateur a une fonctionnalité de lecture d'un fichier séquence, puis il s'agit simplement d'utiliser Avrostorage depuis le même projet de la tirelire avec le système d'avroi approprié pour obtenir votre fichier d'avroi.
Si seulement cochon supporté de charger des schémas avreurs à partir de fichier ..! Si vous utilisez un cochon, vous devez malheureusement former des scripts qui contiennent explicitement le schéma d'avroi, qui peut être un peu ennuyeux.
Autres conseils
Je ne l'ai pas essayé moi-même, mais peut-être en utilisant AvroSequenceFile
le format aiderait.C'est juste un emballage SequenceFile
donc en théorie, vous devriez être capable d'écrire des données à la fois dans votre ancien SequenceFile
format ainsi que votre nouveau Avro
format qui devrait faciliter la migration.
Voici Plus d'information à propos de ce format.