2015-11-23 6 views
5

Ich verwende hortonworks Sandbox.
Schaffung Thema:Wie lade ich ein Kafka-Thema in HDFS?

./kafka-topics.sh --create --zookeeper 10.25.3.207:2181 --replication-factor 1 --partitions 1 --topic lognew 

holend das Apache-Zugriffsprotokoll Verzeichnis:

tail -f /var/log/httpd/access_log |./kafka-console-producer.sh --broker-list 10.25.3.207:6667 --topic lognew 

An einem anderen Anschluss (von kafka ist) startet Verbraucher:

./kafka-console-consumer.sh --zookeeper 10.25.3.207:2181 --topic lognew --from-beginning 

Der Apa che Zugriffsprotokolle werden an das Kafka-Thema "lognew" gesendet.

Ich muss sie in HDFS speichern.
Irgendwelche Ideen oder Vorschläge, wie dies zu tun ist.

Vielen Dank im Voraus.
Deepthy

Antwort

2

verwenden wir camus.

Camus is a simple MapReduce job developed by LinkedIn to load data from Kafka into HDFS. It is capable of incrementally copying data from Kafka into HDFS such that every run of the MapReduce job picks up where the previous run left off. At LinkedIn, Camus is used to load billions of messages per day from Kafka into HDFS.

Aber es sieht aus wie es mit gobblin

Gobblin is a universal data ingestion framework for extracting, transforming, and loading large volume of data from a variety of data sources, e.g., databases, rest APIs, FTP/SFTP servers, filers, etc., onto Hadoop. Gobblin handles the common routine tasks required for all data ingestion ETLs, including job/task scheduling, task partitioning, error handling, state management, data quality checking, data publishing, etc. Gobblin ingests data from different data sources in the same execution framework, and manages metadata of different sources all in one place. This, combined with other features such as auto scalability, fault tolerance, data quality assurance, extensibility, and the ability of handling data model evolution, makes Gobblin an easy-to-use, self-serving, and efficient data ingestion framework.

+0

Vielen Dank für Ihre Antwort ... ** Ich habe versucht, Camus auszuführen, aber den folgenden Fehler erhalten: ** com.linkedin.camus.coders.MessageDecoderException: java.lang.InstantiationException: com.linkedin.camus.example. schemaregistry.DummySchemaRegistry – Deepthy

+0

Ich denke, Sie müssen das Projekt richtig einrichten: http://etl.svbtle.com/setting-up-camus-linkedins-kafka-to-hdfs-pipeline –

+0

Anders als mit Camus und Kobold ist da noch etwas anderes Möglichkeit, Kafka-Thema in hdfs zu laden? – Deepthy

0

Sie haben mehrere andere Optionen, wie gut ersetzt hat:

  • Verwenden Apache Flume Nachrichten lesen von Kafka und schreiben Sie sie auf Ihren HDFS . Es gibt einige Beispiele, wie Sie es einrichten können, aber eine article from Cloudera deckt dieses Thema ziemlich gut ab. Sie nannten sogar die Lösung Flafka;)
  • Verwenden Sie Kafka HDFS Connector, die ziemlich einfach einzurichten ist. Es würde jedoch Confluent Kafka (das immer noch Open Source ist) benötigen.

Wir haben beide ziemlich erfolgreich getestet.

+1

Fügen Sie nach Möglichkeit Inhalte aus den Links zu Ihrer Antwort hinzu. Auf diese Weise, wenn die Links tot sind, ist Ihre Antwort immer noch nützlich – mnwsmit

+1

Sie sind ziemlich große Artikel, aber ich werde versuchen, einige der Konzepte zu erklären. – wjp

+0

Wie kompilieren Sie kafka hdfs connector? Es besagt, dass es gemeinsame und Schema-Repository-Master benötigt, die ich heruntergeladen habe, aber ich kann nicht mit Anweisungen unter https://github.com/confluentinc/common bauen. Hat einen Fehler gemeldet: https://github.com/conflutinc/common/issues/37 – Adrian

Verwandte Themen