2014-11-04 60 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

    相關問題