2014-11-04 33 views
3

首先,我正在考虑如何使用Hadoop将事件存储到Hadoop中,并将定期对其进行分析(可能使用Ooozie安排定期分析)Kafka或Flume,以及认为Kafka可能是更好的解决方案,因为我们也有一个组件可以处理事件,所以批处理和事件处理组件都以相同的方式获取数据。使用Kafka将数据导入Hadoop

但知道我正在寻找具体的建议如何将数据从经纪人获取到Hadoop。

我发现here该水槽可以组合使用,卡夫卡

  • 水槽 - 包括卡夫卡源(消费者)和沉(制片人)

而且也是在同一页上,并在发现Kafka documentation,有一种叫做Camus

  • 加缪 - LinkedIn的卡夫卡=> HDFS管道。这一个用于LinkedIn的所有数据,并且效果很好。

我对什么会更好(更简单,更好的文档化解决方案)这样做感兴趣?另外,有没有任何例子或教程如何做到这一点?

什么时候应该使用这个变种更简单,高级消费者

如果有另一个/更好的解决方案比这两个我打开的建议。

感谢

+1

查看最新Kafka用户群聚会上的视频以获得一些提示:http://www.hakkalabs.co/文章/ kafka-hadoop-2 – Lundahl 2014-11-04 20:15:19

+0

谢谢,这是一个伟大的视频。如果你有一些具体的教程,也许它会很棒。 – Marko 2014-11-05 10:49:33

+0

@abeaamase感谢您的回答,但您的链接似乎被破坏了? – Marko 2014-11-24 14:12:00

回答

1

您可以使用水槽从卡夫卡转储数据到HDFS。 Flume有卡夫卡源和接收器。其属性文件更改的问题。下面给出一个例子。

步骤:

  1. 使用卡夫卡控制台生产者 kafka-console-producer --broker-list localhost:9092 --topic testkafka

  2. 配置水槽剂具有以下属性

    创建卡夫卡主题
    kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 -- partitions 1 --topic testkafka

  3. 写入上面创建的主题

flume1.sources =卡夫卡源-1
flume1.channels = HDFS沟道1
flume1.sinks = HDFS散热器-1
flume1.sources.kafka - 源1.型号=组织.apache.flume.source.kafka。KafkaSource
flume1.sources.kafka - 源1.zookeeperConnect =本地主机:2181
flume1.sources.kafka - 源1.topic = testkafka
flume1.sources.kafka - 源1.batchSize = 100
flume1.sources.kafka - 源1.channels = HDFS沟道1

flume1.channels.hdfs沟道1.型号=存储器
flume1.sinks.hdfs-sink-1.channel = HDFS -channel-1
flume1.sinks.hdfs-sink-1.type = hdfs
flume1.sinks.hdfs-sink-1.hdfs.writeFormat = Text
flume1.sinks.hdfs-sink-1.hdfs.fileType = DataStream
flume1.sinks.hdfs-sink-1.hdfs.filePrefix = test-events
flume1.sinks.hdfs-sink-1.hdfs。 useLocalTimeStamp = true
flume1.sinks.hdfs-sink-1.hdfs.path =/tmp/kafka /%{topic} /%y-%m-%d
flume1.sinks.hdfs-sink-1.hdfs .rollCount = 100
flume1.sinks.hdfs灌入1.hdfs.rollSize = 0
flume1.channels.hdfs沟道1.capacity = 10000
flume1.channels.hdfs沟道1.transactionCapacity = 1000

保存上述配置文件作为example.conf

  • 运行水槽剂 flume-ng agent -n flume1 -c conf -f example.conf - Dflume.root.logger=INFO,console
  • 数据现在将转储到HDFS位置以下路径下

    /tmp/kafka /%{topic} /%y-%m-%d

    +0

    还没有尝试过,但我会相信你: ) – Marko 2016-02-03 15:38:49

    +0

    至少在我的情况下,主题块在目标路径中填充了一个空值...官方水道文档没有列出“主题”景观序列。你试过了吗?我需要它的工作。谢谢 – dhalfageme 2016-10-19 07:41:19

    0

    大部分时间里,我看到使用加缪与阿兹卡班

    你可以在你的MATE1为其实施加缪的GitHub库人。这不是一个教程,但我认为它可以帮助你

    https://github.com/mate1/camus

    相关问题