2014-10-14 3 views
0

Я использую Cygnus 0.5 с настройкой по умолчанию для HDFS-раковины. Чтобы заставить его работать, я дезактивировал перехватчик «ds» (иначе я получаю сообщение об ошибке во время запуска, которое не позволяет запустить Cygnus, связанный с тем, что не нашел соответствующий файл таблицы).Получение файла null.txt при использовании Cygnus HDFS sink

Cygnus, похоже, работает, но файл, в котором хранится информация о сущности в HDFS, получает странное имя: «null.txt». Как я могу это исправить?

ответ

0

Прежде всего не деактивироватьDestinationExtractor перехватчик. Это часть кода, выводящего адресату, данные контекста, сообщенные Orion, будут сохранены. Обратите внимание, что адресат может ссылаться на имя файла HDFS, имя таблицы MySQL или имя ресурса CKAN, это зависит от настроек, которые вы настроили. После вывода адресата добавляется во внутреннее событие Flume в виде заголовка destination, чтобы приемники знали, где сохранить. Таким образом, если деактивировано, такой заголовок не найден приемниками, а в качестве имени назначения используется имя null.

Что касается проблемы со встречным файлом таблицы, которая не была найдена (и которая привела вас к деактивации перехватчика), это связано с тем, что шаблон конфигурации Cygnus имел неправильное значение по умолчанию для параметра cygnusagent.sources.http-source.interceptors.de.matching_table. Это было решено в Cygnus 0.5.1.

0

Обходной в то время как Cygnus 0.5.1 освобождается является:

  • делать не дезактивировать DestinatonExtractor (как @frb говорит в своем ответе)
  • Создайте пустой файл сопоставления таблицы и использовать его для matching_table конфигурации, то есть: touch /tmp/dummy_table.conf, а затем установить в файле конфигурации cygnus: cygnusagent.sources.http-source.interceptors.de.matching_table = /tmp/dummy_table.conf