Запись данных в каталог хранилища улья в две отдельные таблицы с использованием Flume

Я хочу записать данные в каталог хранилища улья, в две отдельные таблицы с именами flumemaleemployee и flumefemaleemployee. Последние 3 records должны быть вставлены в таблицу female, а верхние 3 records должны быть вставлены в таблицу male. Ниже приведены мои данные:

1,alok,mumbai
1,jatin,chennai
1,yogesh,kolkata
2,ragini,delhi
2,jyotsana,pune
1,valmiki,banglore  

Ниже мой код flume conf:

agent.sources = tailsrc 
agent.channels = mem1 mem2 
agent.sinks = stdl std2 
agent.sources.tailsrc.type = exec 
agent.sources.tailsrc.command = tail -F /home/cloudera/Desktop/in.txt 
agent.sources.tailsrc.batchSize = 1 
agent.sources.tailsrc.interceptors = i1 
agent.sources.tailsrc.interceptors.i1.type = regex_extractor 
agent.sources.tailsrc.interceptors.il.regex = A(\\d} 
agent.sources.tailsrc. interceptors. M.serializers = t1 
agent.sources.tailsrc. interceptors, i1.serializers.t1. name = type 
agent.sources.tailsrc.selector.type = multiplexing 
agent.sources.tailsrc.selector.header = type 
agent.sources.tailsrc.selector.mapping.1 = mem1 
agent.sources.tailsrc.selector.mapping.2 = mem2 
agent.sinks.std1.type = hdfs 
agent.sinks.stdl.channel = mem1 
agent.sinks.stdl.batchSize = 1 
agent.sinks.std1.hdfs.path = /user/hive/warehouse/aisehibanayatp.db/flumemaleemployee
agent.sinks.stdl.rolllnterval = 0 
agent.sinks.stdl.hdfs.fileType = DataStream 
agent.sinks.std2.type = hdfs 
agent.sinks.std2.channel = mem2 
agent.sinks.std2.batchSize = 1 
agent.sinks.std2.hdfs.path = /user/hi ve/warehouse/aisehibanayatp.db/flumefemaleemployee
agent.sinks.std2.rolllnterval = 0 
agent.sinks.std2.hdfs.fileType = DataStream 
agent.channels.mem1.type = memory 
agent.channels.meml.capacity = 100 
agent.channels.mem2.type = memory 
agent.channels.mem2.capacity = 100 
agent.sources.tailsrc.channels = mem1 mem2  

Я не получаю никаких ошибок, но когда я запускаю flume service с помощью приведенной ниже команды, он просто застревает на чем-то, что я не знаю, как с этим справиться, так как я не получаю никаких ошибок

flume-ng agent --name agent -conf-file /home/cloudera/Desktop/flume1.config  

и он застрял на шаге ниже:

18/11/13 08:03:00 INFO instrumentation.MonitoredCounterGroup: Shutdown Metric for type: CHANNEL, name: mem2. channel.event.take.success == 0
18/11/13 08:03:00 INFO node.Application: Starting new configuration:{ sourceRunners:{} sinkRunners:{std2=SinkRunner: { policy:org.apache.flume.sink.DefaultSinkProcessor@17ade71c counterGroup:{ name:null counters:{} } }} channels:{mem2=org.apache.flume.channel.MemoryChannel{name: mem2}} }
18/11/13 08:03:00 INFO node.Application: Starting Channel mem2
18/11/13 08:03:00 INFO instrumentation.MonitoredCounterGroup: Component type: CHANNEL, name: mem2 started
18/11/13 08:03:00 INFO node.Application: Starting Sink std2
18/11/13 08:03:00 INFO instrumentation.MonitoredCounterGroup: Monitored counter group for type: SINK, name: std2: Successfully registered new MBean.
18/11/13 08:03:00 INFO instrumentation.MonitoredCounterGroup: Component type: SINK, name: std2 started

Итак, как я могу этого добиться??


person RushHour    schedule 13.11.2018    source источник
comment
Не уверен, что понимаю регулярное выражение. Разве это не должно быть основано на значении первого столбца, 1 или 2?   -  person thebluephantom    schedule 13.11.2018
comment
выглядит нормально на первый взгляд   -  person thebluephantom    schedule 13.11.2018
comment
да ошибок не выдает   -  person RushHour    schedule 13.11.2018
comment
мой первый комментарий? Вы можете найти выходные файлы?   -  person thebluephantom    schedule 13.11.2018
comment
не думаю, что это ошибка   -  person thebluephantom    schedule 13.11.2018
comment
Нет, файлов не было   -  person RushHour    schedule 13.11.2018
comment
Можете ли вы изменить в соответствии с вашими знаниями мой конфигурационный файл flume, чтобы решить мою проблему. Потому что я старался изо всех сил, но не повезло   -  person RushHour    schedule 13.11.2018
comment
Давайте продолжим обсуждение в чате.   -  person thebluephantom    schedule 13.11.2018
comment
проблема регулярного выражения и тип и пробелы   -  person thebluephantom    schedule 14.11.2018


Ответы (1)


Проблема в опечатках и отсутствии форматирования, пробелов и l вместо 1. Мне удалось это исправить, и он запустился, я изменил ваше регулярное выражение, вы можете это изменить, но в основном это проблема точности. Используйте файл следующим образом, и он работает, конечно же, с вашими собственными HDFS и настройками:

agent.sources = tailsrc 
agent.channels = mem1 mem2 
agent.sinks = std1 std2 
agent.sources.tailsrc.type = exec 
agent.sources.tailsrc.command = tail -F /home/cloudera/in.txt 
agent.sources.tailsrc.batchSize = 1 
agent.sources.tailsrc.interceptors = i1 
agent.sources.tailsrc.interceptors.i1.type = regex_extractor 
agent.sources.tailsrc.interceptors.i1.regex = ^.*(1|2) 
agent.sources.tailsrc.interceptors.i1.serializers = t1 
agent.sources.tailsrc.interceptors.i1.serializers.t1.name = type 
agent.sources.tailsrc.selector.type = multiplexing 
agent.sources.tailsrc.selector.header = type 
agent.sources.tailsrc.selector.mapping.1 = mem1 
agent.sources.tailsrc.selector.mapping.2 = mem2
agent.sinks.std1.type = hdfs 
agent.sinks.std1.channel = mem1 
agent.sinks.std1.batchSize = 1 
agent.sinks.std1.hdfs.path = hdfs://quickstart.cloudera:8020/user/hive/warehouse/flumemaleemployee
agent.sinks.std1.rolllnterval = 0 
agent.sinks.std1.hdfs.fileType = DataStream 
agent.sinks.std2.type = hdfs 
agent.sinks.std2.channel = mem2 
agent.sinks.std2.batchSize = 1 
agent.sinks.std2.hdfs.path =  hdfs://quickstart.cloudera:8020/user/hive/warehouse/flumefemaleemployee
agent.sinks.std2.rolllnterval = 0 
agent.sinks.std2.hdfs.fileType = DataStream 
agent.channels.mem1.type = memory 
agent.channels.meml.capacity = 100 
agent.channels.mem2.type = memory 
agent.channels.mem2.capacity = 100 
agent.sources.tailsrc.channels = mem1 mem2  
person thebluephantom    schedule 13.11.2018
comment
Если я следую документации и если я использую только обязательные свойства для источника. Как и для exec, единственным обязательным свойством является тип и команда. Так будет ли он работать и с этими двумя свойствами?? Потому что я не понял назначение других свойств здесь - person RushHour; 14.11.2018
comment
Да, это сработало, но было бы очень полезно, если бы вы могли объяснить мне эти свойства с точки зрения непрофессионала, особенно часть регулярного выражения, чтобы в будущем я мог решать такие проблемы. - person RushHour; 14.11.2018
comment
Он прошел, и для меня все кончено. Работа, которую нужно сделать - person thebluephantom; 14.11.2018
comment
Хорошо, когда у вас будет время, вы поможете мне понять эти свойства? - person RushHour; 14.11.2018
comment
Хорошо, но пример читает из файла, который получает материал, и с начала строки ищет 1 или 2 и разбивается на 2 файла. Я отправлю вам ссылку для чтения на регулярном выражении - person thebluephantom; 14.11.2018
comment
можно ссылку?? - person RushHour; 15.11.2018
comment
Этот dzone.com/articles/apache-flume-regex-filtering и этот flume.apache.org/ - person thebluephantom; 15.11.2018
comment
Спасибо. Я передам это и дам вам знать - person RushHour; 15.11.2018
comment
можете ли вы помочь мне с этим stackoverflow.com/questions/54426075/ - person RushHour; 29.01.2019