我用的是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垃圾箱)启动消费者:
./kafka-console-consumer.sh --zookeeper 10.25.3.207:2181 --topic lognew --from-beginning
apache访问日志被发送到kafka主题“lognew”。
我需要将它们存储到hdfs。
任何关于如何做到这一点的想法或建议。
提前谢谢。
深沉的
2条答案
按热度按时间g52tjvyc1#
我们用加缪。
camus是linkedin开发的一个简单的mapreduce作业,用于将Kafka的数据加载到hdfs中。它能够增量地将数据从kafka复制到hdfs中,这样mapreduce作业的每次运行都会从上一次运行结束的地方恢复。在linkedin,加缪每天从Kafka上传数十亿条信息到hdfs。
但看起来它被戈布林取代了
gobblin是一个通用的数据摄取框架,用于从各种数据源(如数据库、restapi、ftp/sftp服务器、文件服务器等)提取、转换和加载大量数据到hadoop上。gobblin处理所有数据摄取ETL所需的常规任务,包括作业/任务调度、任务分区、错误处理、状态管理、数据质量检查、数据发布等。gobblin在同一执行框架中摄取来自不同数据源的数据,并在一个地方管理不同来源的元数据。这与其他特性(如自动可伸缩性、容错性、数据质量保证、可扩展性和处理数据模型演化的能力)相结合,使gobblin成为一个易于使用、自我服务和高效的数据摄取框架。
7bsow1i62#
您还有其他几种选择:
使用apacheflume读取来自kafka的消息并将它们写入hdfs。有几个例子可以说明如何设置它,但是cloudera的一篇文章很好地介绍了这个主题。他们甚至将解决方案命名为flafka;)
使用kafka hdfs连接器,设置起来非常简单。然而,它需要融合的Kafka(仍然是开源的)。
我们都测试得很成功。