2014-10-15 1 views
0

Я новичок в Flume (и HDFS), поэтому надеюсь, что мой вопрос не глуп.HDFS раковина: «умная» маршрутизация папки

У меня есть многопользовательская заявка (около 100 различных клиентов, как для ). У меня есть 16 различных типов данных.

(В производстве, мы имеем около 15 миллионов сообщений/день через наш RabbitMQ.)

Я хочу написать HDFS все мои события, разделенные жильца, тип данных, и даты, как это:

/data/{tenant}/{data_type}/2014/10/15/file-08.csv 

Возможно ли это с одним определением раковины? Я не хочу, чтобы дублировать конфигурации, и новый клиент прибывает каждую неделю или около того

В документации, я вижу

agent1.sinks.hdfs-sink1.hdfs.path = hdfs://server/events/%Y/%m/%d/%H/ 

Возможно ли это?

agent1.sinks.hdfs-sink1.hdfs.path = hdfs://server/events/%tenant/%type/%Y/%m/%d/%H/ 

Я хочу писать в разные папки в соответствии с моими входящими данными.

+0

Возможный дубликат [Может ли apache flume hdfs sink принимать динамический путь для записи?] (Http://stackoverflow.com/questions/14830147/can-apache-flume-hdfs-sink-accept-dynamic-path-to- записывать) –

ответ

1

Да, это действительно возможно. Вы можете использовать метаданные или какое-либо поле во входящих данных для перенаправления вывода.

Например, в моем случае я получаю разные типы данных журнала, и я хочу сохранить их в соответствующих папках соответственно. Также в моем случае первое слово в моих строках журнала - это имя файла. Вот фрагмент конфигурации для этого же.

Interceptor:

dataplatform.sources.source1.interceptors = i3 
dataplatform.sources.source1.interceptors.i3.type = regex_extractor 
dataplatform.sources.source1.interceptors.i3.regex = ^(\\w*)\t.* 
dataplatform.sources.source1.interceptors.i3.serializers = s1 
dataplatform.sources.source1.interceptors.i3.serializers.s1.name = filename 

HDFS Раковина

dataplatform.sinks.sink1.type = hdfs 
dataplatform.sinks.sink1.hdfs.path = hdfs://server/events/provider=%{filename}/years=%Y/months=%Y%m/days=%Y%m%d/hours=%H 

Надеется, что это помогает.

 Смежные вопросы

  • Нет связанных вопросов^_^