Интеграция с Cygnus Cosmos

Нам удается интегрировать поток idas-cygnus-orion, все работает отлично. (Спасибо за помощь, Франциско)

Теперь мы хотим добавить Cosmos в интеграцию, и я настроил Cygnus с вашим ответом, опубликованным здесь (часть, начинающаяся с *, добавлена ​​для конфигурации Cosmos)

Когда я запускаю Cygnus, мы получаем это сообщение об ошибке

        [root@idas-new centos]# tail -500f nohup.out
Warning: No configuration directory set! Use --conf <dir> to override.
Warning: JAVA_HOME is not set!
+ exec /usr/bin/java -Xmx20m -Dflume.root.logger=DEBUG,console -cp '/usr/cygnus/lib/*:/usr/cygnus/plugins.d/cygnus/lib/*:/usr/cygnus/agent_test.conf -n cygnusagent
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/cygnus/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/cygnus/plugins.d/cygnus/lib/cygnus-0.12.0_SNAPSHOT-jar-with-dependencies.jar!/org/slf4j/impl/
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
16/05/18 09:26:46 INFO node.PollingPropertiesFileConfigurationProvider: Configuration provider starting
16/05/18 09:26:46 INFO node.PollingPropertiesFileConfigurationProvider: Reloading configuration file:/usr/cygnus/conf/agent_test.con
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Processing:hdfs-sink
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Processing:hdfs-sink
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Processing:hdfs-sink
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Processing:hdfs-sink
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Processing:hdfs-sink
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Processing:hdfs-sink
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Processing:hdfs-sink
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Processing:hdfs-sink
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Added sinks: hdfs-sink Agent: cygnusagent
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Processing:hdfs-sink
16/05/18 09:26:46 INFO conf.FlumeConfiguration: Post-validation flume configuration contains configuration for agents: [cygnusagent]
16/05/18 09:26:46 INFO node.AbstractConfigurationProvider: Creating channels
16/05/18 09:26:46 INFO channel.DefaultChannelFactory: Creating instance of channel hdfs-channel type memory
16/05/18 09:26:46 INFO node.AbstractConfigurationProvider: Created channel hdfs-channel
16/05/18 09:26:46 INFO source.DefaultSourceFactory: Creating instance of source http-source, type org.apache.flume.source.http.HTTPS
16/05/18 09:26:46 INFO handlers.OrionRestHandler: Cygnus version (0.12.0_SNAPSHOT.d6ee0e4548ca6bf9116c1dee4c4cbcc7da8b1752)
16/05/18 09:26:46 INFO handlers.OrionRestHandler: Startup completed
16/05/18 09:26:46 INFO sink.DefaultSinkFactory: Creating instance of sink: hdfs-sink, type: com.telefonica.iot.cygnus.sinks.OrionHDF
16/05/18 09:26:46 ERROR node.AbstractConfigurationProvider: Sink hdfs-sink has been removed due to an error during configuration
java.lang.NullPointerException
        at com.telefonica.iot.cygnus.sinks.OrionHDFSSink.configure(OrionHDFSSink.java:339)
        at org.apache.flume.conf.Configurables.configure(Configurables.java:41)
        at org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:418)
        at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:103)
        at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurati
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
16/05/18 09:26:46 INFO node.AbstractConfigurationProvider: Channel hdfs-channel connected to [http-source]
16/05/18 09:26:46 INFO node.Application: Starting new configuration:{ sourceRunners:{http-source=EventDrivenSourceRunner: { source:oyChannel{name: hdfs-channel}} }
16/05/18 09:26:46 INFO node.Application: Starting Channel hdfs-channel
16/05/18 09:26:46 INFO instrumentation.MonitoredCounterGroup: Monitoried counter group for type: CHANNEL, name: hdfs-channel, regist
16/05/18 09:26:46 INFO instrumentation.MonitoredCounterGroup: Component type: CHANNEL, name: hdfs-channel started
16/05/18 09:26:46 INFO node.Application: Starting Source http-source
16/05/18 09:26:46 INFO interceptors.GroupingRules: No grouping rules have been read
Exception in thread "Thread-1" java.lang.NullPointerException
        at java.io.File.<init>(Unknown Source)
        at com.telefonica.iot.cygnus.interceptors.GroupingInterceptor$ConfigurationReader.run(GroupingInterceptor.java:244)
16/05/18 09:26:46 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
16/05/18 09:26:46 INFO mortbay.log: jetty-6.1.26
16/05/18 09:26:47 INFO mortbay.log: Started [email protected]:5050

У нас в пути лежит этот файл grouping_rules.conf, но внутри все закомментировано(так как этот файл нам не понадобился для интеграции с CKAN) нужно ли редактировать этот файл для Cosmos?(если да, то как?)

Не могли бы вы помочь нам в этом вопросе?

Большое спасибо Омер

cygnusagent.sources = http-source
cygnusagent.sinks = ckan-sink hdfs-sink
cygnusagent.channels = ckan-channel hdfs-channel

cygnusagent.sources.http-source.channels = ckan-channel hdfs-channel
cygnusagent.sources.http-source.type = org.apache.flume.source.http.HTTPSource
cygnusagent.sources.http-source.port = 5050
cygnusagent.sources.http-source.handler = com.telefonica.iot.cygnus.handlers.OrionRestHandler
cygnusagent.sources.http-source.handler.notification_target = /notify
cygnusagent.sources.http-source.handler.events_ttl = 2
cygnusagent.sources.http-source.interceptors = ts gi
cygnusagent.sources.http-source.interceptors.ts.type = timestamp
cygnusagent.sources.http-source.interceptors.gi.type = com.telefonica.iot.cygnus.interceptors.GroupingInterceptor$Builder
cygnusagent.sources.http-source.interceptors.gi.gropuing_rules_conf_file = /etc/cygnus/conf/grouping_rules.conf

cygnusagent.channels.ckan-channel.type = memory
cygnusagent.channels.ckan-channel.capacity = 1000
cygnusagent.channels.ckan-channel.transactionCapacity = 100

cygnusagent.sinks.ckan-sink.channel = ckan-channel
cygnusagent.sinks.ckan-sink.type = com.telefonica.iot.cygnus.sinks.OrionCKANSink
cygnusagent.sinks.ckan-sink.enable_grouping = false
cygnusagent.sinks.ckan-sink.api_key = XXXXXXXXXX
cygnusagent.sinks.ckan-sink.ckan_host = data.lab.fiware.org
cygnusagent.sinks.ckan-sink.ckan_port = 443
cygnusagent.sinks.ckan-sink.orion_url = localhost:1026
cygnusagent.sinks.ckan-sink.attr_persistence = row
cygnusagent.sinks.ckan-sink.ssl = true
cygnusagent.sinks.ckan-sink.batch_size = 1
cygnusagent.sinks.ckan-sink.batch_timeout = 10

cygnusagent.sinks.hdfs-sink.type = com.telefonica.iot.cygnus.sinks.OrionHDFSSink
cygnusagent.sinks.hdfs-sink.channel = hdfs-channel
cygnusagent.sinks.hdfs-sink.enable_grouping = false
cygnusagent.sinks.hdfs-sink.hdfs_host = cosmos.lab.fiware.org
cygnusagent.sinks.hdfs-sink.hdfs_port = 14000
cygnusagent.sinks.hdfs-sink.hdfs_username = XXXXX
cygnusagent.sinks.hdfs-sink.hdfs_password = XXX
cygnusagent.sinks.hdfs-sink.oauth2_token = XXXXXXXXX
cygnusagent.sinks.hdfs-sink.file_format = json-column


cygnusagent.channels.hdfs-channel.type = memory
cygnusagent.channels.hdfs-channel.capacity = 1000
cygnusagent.channels.hdfs-channel.transactionCapacity = 100

person dmtzz    schedule 13.05.2016    source источник


Ответы (1)


С конфигурацией вроде бы все в порядке, кроме:

cygnusagent.sources.http-source.interceptors.gi.gropuing_rules_conf_file = /etc/cygnus/conf/grouping_rules.
conf
  • gropuing -> grouping (вероятно, это взято из краткого руководства, где эта опечатка жила, пока мы ее не исправили).
  • conf часть имени файла, кажется, находится во второй строке... Конфигурациям Flume это не нравится, лучше, чтобы все параметры находились в одной строке.

Попробуйте эти изменения и дайте посмотреть.

person frb    schedule 18.05.2016
comment
спасибо, Франциско, я отредактировал это, но, как я уже сказал выше, содержимое этого файла пусто, так как я не смог найти руководство по использованию файла конфигурации правил грунтовки, так как содержимое этого файла все прокомментировано, теперь мы получаем эту ошибку: 16/05/18 09:55:04 INFO interceptors.GroupingRules: Grouping rules read: 16/05/18 09:55:04 ERROR interceptors.GroupingRules: Error while parsing the Json-based grouping rules file. Details=null 16/05/18 09:55:04 WARN interceptors.GroupingRules: Grouping rules syntax has errors как я могу добавить правило в этот файл и как оно работает? - person dmtzz; 18.05.2016
comment
Вы можете проверить эту ссылку: fiware-cygnus. readthedocs.io/en/latest/cygnus-ngsi/. Тем не менее, если вам не нужны правила группировки, просто создайте файл (он должен существовать) и добавьте такое содержимое: {"grouping_rules":[]}. - person frb; 18.05.2016
comment
добавлено пустое правило группировки, как вы написали выше, все в порядке, но приемник hdfs выдает исключение нулевого указателя при запуске: 16/05/18 10:17:52 ERROR node.AbstractConfigurationProvider: Sink hdfs-sink has been removed due to an error during configuration java.lang.NullPointerException at com.telefonica.iot.cygnus.sinks.OrionHDFSSink.configure(OrionHDFSSink.java:339) - person dmtzz; 18.05.2016
comment
Да, это разные проблемы. После того, как исправили правила группировки, давайте посмотрим на сток. Какую версию вы используете? Как вы установили Cygnus? Можете ли вы поделиться всем журналом до исключения нулевого указателя? Спасибо. - person frb; 18.05.2016
comment
привет, frb, да, правила группировки были исправлены, я публикую полный журнал в своем первоначальном вопросе выше. хорошо, вы прислали мне версию снимка (я обнаружил ошибку, и вы, ребята, исправили это и прислали мне версию снимка) - person dmtzz; 18.05.2016
comment
добавил весь лог в мой пост/вопрос выше - person dmtzz; 18.05.2016
comment
я запускаю cygnus вот так (как вы мне посоветовали 2 месяца назад): nohup /usr/cygnus/bin/cygnus-flume-ng agent —conf /usr/cygnus/conf -f /usr/cygnus/conf/agent_test.conf -n cygnusagent -Dflume.root.logger=DEBUG,console & - person dmtzz; 18.05.2016
comment
Вы используете версию Cygnus 0.12.0... Хорошо, строка 339 в OrionHDFSSink касается параметра конфигурации hive.server_version, который имеет смысл только в том случае, если настроен hive. Не могли бы вы попробовать добавить эту строку в конфигурацию приемника HDFS: cygnusagent.sinks.hdfs-sink.hive = false? - person frb; 18.05.2016
comment
я добавил эту строку, на этот раз cygnus получает исключение в строке 447 :( 16/05/19 06:23:24 ERROR node.AbstractConfigurationProvider: Sink hdfs-sink has been removed due to an error during configuration java.lang.NullPointerException at com.telefonica.iot.cygnus.sinks.OrionHDFSSink.configure(OrionHDFSSink.java:447) - person dmtzz; 19.05.2016
comment
хм странно, а есть какой-то общий способ удалить текущую и установить с yum? Я использовал снимок cygnus-common-<x.y.z>-jar-with-dependencies.jar, который вы создали и отправили мне. - person dmtzz; 23.05.2016
comment
Эммм, я вам ничего не присылал, насколько я помню :) Так или иначе, до 0.13.0 (включительно) Cygnus был собран как единая банка. Начиная с версии 1.0.0 (включительно), Cygnus был разделен на cygnus-common и cygnus-ngsi (который опирается на cygnus-common). Использование только cygnus-common ничего не даст, кроме простого запуска Apache Flume (продолжение). - person frb; 23.05.2016
comment
(продолжение) Как говорится, я рекомендую вам установить 0.13.0, которая устанавливается путем выполнения yum install cygnus (вам понадобится репозиторий FIWARE, установленный на вашем компьютере). Для того, чтобы удалить текущий, я сделаю следующее: sudo rpm -e -vv --allmatches --nodeps --noscripts --notriggers cygnus. Кроме того, я проверю, что на вашем компьютере нет папки с именем cygnus. - person frb; 23.05.2016
comment
ну, вы отправили меня :D, пожалуйста, проверьте этот длинный разговор в этом билете HELP-5978. В итоге я отредактировал файл конфигурации и использовал банку моментальных снимков, которую вы мне прислали, так как обнаружил [ошибку])(github.com/telefonicaid/fiware-cygnus/issues/826) в Cygnus. поэтому я должен удалить существующий с помощью команды выше, установить 0.13 и снова настроить его с нуля? эта команда удаления работает для текущего: D? - person dmtzz; 23.05.2016
comment
Вы можете сохранить конфигурацию в другом месте перед удалением Cygnus :) И вы правы, я проверил это и отправил вам банку 0.12.0, извините за путаницу. Тем не менее, попробуйте установить 0.13.0, она намного стабильнее. - person frb; 23.05.2016
comment
я сделал следующее sudo rpm -e -vv --allmatches --nodeps --noscripts --notriggers cygnus, но кажется, что папка /usr/cygnus и каталоги ./conf и ./plugins.d и файлы в них все еще существуют, должен ли я продолжать установку yum install cygnus или мне нужно сделать что-то еще, чтобы удалить эти папки или другие? - person dmtzz; 23.05.2016
comment
Думаю файлы под /usr/cygnus/conf/ можно оставить. Тем не менее, убедитесь, что /usr/cygnus/plugins.d/lib пуста (если нет, просто удалите ее содержимое, но папка должна существовать). - person frb; 23.05.2016
comment
обновился до версии 0.13 :) есть вопросы по стоку/каналу hdfs, но до этого была проблема с портом. порт управления (который я настроил для работы на 8085 с версией 0.12) внезапно изменился на 8081 (на котором работает mongodb). почему cygnus v 0.13 игнорирует conf в cygnus_instance_1.conf? который у меня такой: ADMIN_PORT=8085 - person dmtzz; 23.05.2016
comment
Как вы управляете этим новым экземпляром? В качестве услуги (т.е. service cygnus start)? Или как процесс (т.е. nohup /usr/cygnus/bin/cygnus-flume-ng agent ...)? В первом случае как называются файлы конфигурации cygnus_instance и агента? Во втором случае, какую именно команду вы используете? - person frb; 24.05.2016
comment
доброе утро frb, я использую 2-й подход для версии 0,13. nohup /usr/cygnus/bin/cygnus-flume-ng agent —conf /usr/cygnus/conf -f /usr/cygnus/conf/agent_test.conf -n cygnusagent -Dflume.root.logger=DEBUG,console & - person dmtzz; 24.05.2016
comment
Доброе утро! :) Это имеет смысл. При работе в качестве процесса файл cygnus_instance_<id>.conf вообще не используется, читается только файл agent_<id>.conf. В этом случае, чтобы изменить порт администратора по умолчанию, вы должны использовать опцию -p: nohup /usr/cygnus/bin/cygnus-flume-ng agent —conf /usr/cygnus/conf -f /usr/cygnus/conf/agent_test.conf -n cygnusagent -Dflume.root.logger=DEBUG,console -p 8085 & - person frb; 24.05.2016
comment
спасибо, я начал с этой опции, теперь у меня есть последний вопрос (надеюсь :D) пожалуйста, проверьте журналы запуска cygnus, вставленные сюда: http://pastebin.com/gNwQAz7n я вижу, что приемник ckan и канал ckan запускаются так же, как в журналах, но для hdfs, я вижу эти 2 строки: Added sinks: ckan-sink hdfs-sink Agent: cygnusagent и no context for sinkhdfs-sink как вы думаете, приемник/канал hdfs запущен успешно? Cygnus не сохраняет полученные данные в hdfs sik, а только в приемник Ckan :( - person dmtzz; 24.05.2016
comment
Я так не думаю :( Этот журнал 16/05/24 10:18:52 WARN conf.FlumeConfiguration: no context for sinkhdfs-sink означает, что что-то не так с конфигурацией приемника HDFS. Я пытался воспроизвести ошибку, используя вашу конфигурацию (даже используя поддельные значения xxxxx) в новой установке 0.13.0 и log отличается: pastebin.com/fYVb6nMS Как видите, оба приемника запускаются правильно. Вы уверены? ничего не было добавлено в конфигурацию, которую вы изначально опубликовали, кроме предложенного мной параметра Hive?Можете ли вы обновить его, пожалуйста? - person frb; 24.05.2016
comment
привет, Франциско, кажется, моя конфигурация такая же, как у тебя :( пожалуйста, взгляни на нее http://pastebin.com/PEpAf2nw - person dmtzz; 24.05.2016
comment
о боже :D обновил и все работает нормально, большое спасибо Франциско! - person dmtzz; 24.05.2016