Quel est le moyen le plus efficace d'écrire à partir de kafka pour hdfs avec des fichiers de partitionnement dans les dates
Je suis en train de travailler sur le projet qui devrait écrire via kafka pour hdfs.
Supposons qu'il y ait serveur en ligne qui écrit des messages dans la kafka. Chaque message contient le timestamp.
Je veux créer un emploi à la sortie d'un fichier/fichiers en fonction de l'horodatage des messages.
Par exemple, si les données de kafka est
{"ts":"01-07-2013 15:25:35.994", "data": ...}
...
{"ts":"01-07-2013 16:25:35.994", "data": ...}
...
{"ts":"01-07-2013 17:25:35.994", "data": ...}
J'aimerais avoir les 3 fichiers de sortie
kafka_file_2013-07-01_15.json
kafka_file_2013-07-01_16.json
kafka_file_2013-07-01_17.json
Et bien sûr, Si je suis l'exécution de ce travail encore une fois et il y a un nouveau message dans la file d'attente comme
{"ts":"01-07-2013 17:25:35.994", "data": ...}
Il doit créer un fichier
kafka_file_2013-07-01_17_2.json //second chunk of hour 17
J'ai vu quelques-uns des sources ouvertes, mais la plupart d'entre eux lectures de kafka pour certains hdfs dossier.
Quelle est la meilleure solution/design/opensource pour ce problème
OriginalL'auteur Julias | 2013-07-02
Vous devez vous connecter pour publier un commentaire.
Vous devriez certainement vérifier
Camus API
mise en œuvre de linkedIn. Camus est LinkedIn Kafka->HDFS pipeline. C'est un travail de mapreduce qui n'a distribué les chargements de données de Kafka. Découvrez ce post j'ai écrit pour un exemple simple qui récupère de flux twitter et écrit sur HDFS basé sur tweet horodateurs.Projet est disponible sur github à - https://github.com/linkedin/camus
Camus a besoin de deux principaux composants pour la lecture et le décodage des données à partir de Kafka et l'écriture de données sur HDFS –
Décodage des Messages lecture de Kafka
Camus a un ensemble de Décodeurs qui aide dans le décodage des messages venant de Kafka, les Décodeurs fait que prolonger
com.linkedin.camus.coders.MessageDecoder
qui implémente la logique de la partition de données basées sur l'horodatage. Un ensemble prédéfini de Décodeurs sont présents dans ce répertoire et vous pouvez écrire votre propre sur la base de ces.camus/camus-kafka-coders/src/main/java/com/linkedin/camus/etl/kafka/coders/
L'écriture de messages dans HDFS
Camus a besoin d'un ensemble de RecordWriterProvider classes qui s'étend
com.linkedin.camus.etl.RecordWriterProvider
qui dira Camus quelle est la charge utile qui devrait être écrit dans HDFS.Un ensemble prédéfini de RecordWriterProvider sont présents dans ce répertoire et vous pouvez écrire votre propre sur la base de ces.Gobelin docs: gobblin.readthedocs.io/fr/dernière Gobelin source: github.com/linkedin/gobblin
Voici un exemple avec Gobblin. cwiki.apache.org/confluence/display/GOBBLIN/...
OriginalL'auteur saurzcode
Si vous êtes à la recherche pour un plus de temps réel de l'approche que vous devriez vérifier StreamSets De Collecteurs De Données. C'est aussi un Apache sous licence open source outil pour l'acquisition.
Le HDFS destination est configurable à écrire à temps annuaires basé sur le modèle que vous spécifiez. Et il comprend déjà un moyen de spécifier un champ dans vos messages entrants à utiliser pour déterminer le temps d'un message doit être écrit. La config est appelé "Temps" et vous pouvez spécifier quelque chose comme
${record:value("/ts")}
.*la divulgation complète, je suis un ingénieur travaillant sur cet outil.
OriginalL'auteur ramblingpolak
Vérifier cela continue ingestion de Kafka pour HDFS. Car il dépend de Apache Apex, il a les garanties Apex fournit.
https://www.datatorrent.com/apphub/kafka-to-hdfs-sync/
OriginalL'auteur ashwin111
si vous utilisez Apache Kafka 0,9 ci-dessus, vous pouvez utiliser le Kafka Connecter API.
découvrez https://github.com/confluentinc/kafka-connect-hdfs
C'est un Kafka connecteur pour copier des données entre Kafka et HDFS.
Ce connect HDFS écrivain ne prend pas encore en charge l'écriture des fichiers json
OriginalL'auteur swamoch
Caisse Camus:
https://github.com/linkedin/camus
Cela permettra d'écrire des données dans Avro format bien... d'autres RecordWriters sont enfichables.
OriginalL'auteur ggupta1612