如何将Kafka主题加载到HDFS?

时间:2015-11-23 05:46:52

标签: hadoop apache-kafka

我正在使用hortonworks沙箱 创建主题

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

拖尾apache访问日志目录

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

在另一个终端(kafka bin)启动消费者

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

apache访问日志将发送到kafka主题“ lognew ”。

我需要将它们存储到HDFS中 有关如何执行此操作的任何想法或建议。

提前致谢。
Deepthy

2 个答案:

答案 0 :(得分:5)

我们使用camus

  

Camus是LinkedIn开发的一个简单的MapReduce工作,用于加载数据   从Kafka到HDFS。它能够从中逐步复制数据   Kafka进入HDFS,以便MapReduce工作的每次运行都能完成   前一次运行停止的地方。在LinkedIn,Camus习惯于加载   每天从卡夫卡到HDFS的数十亿条消息。

但看起来它已被gobblin

取代
  

Gobblin是一种用于提取的通用数据提取框架,   转换,并从各种数据中加载大量数据   来源,例如数据库,其他API,FTP / SFTP服务器,文件管理器等,   到Hadoop。 Gobblin处理所有人需要的常见日常任务   数据提取ETL,包括作业/任务调度,任务分区,   错误处理,状态管理,数据质量检查,数据   gobblin从中获取来自不同数据源的数据   相同的执行框架,并管理不同的元数据   所有来源都在一个地方。这,结合其他功能,如   自动扩展,容错,数据质量保证,   可扩展性和处理数据模型演化的能力   Gobblin是一种易于使用,自我服务且高效的数据提取   框架。

答案 1 :(得分:1)

您还有其他几个选项:

  • 使用Apache Flume从Kafka读取消息并将其写入HDFS。有几个例子可以说明如何进行设置,但有一个article from Cloudera很好地涵盖了这个主题。他们甚至将解决方案命名为Flafka;)
  • 使用Kafka HDFS Connector,设置非常简单。但是,它需要Confluent Kafka(仍然是开源的)。

我们非常成功地测试过。