2014-10-14 6 views
0

HDFS 싱크의 기본 구성으로 Cygnus 0.5를 사용하고 있습니다. 실행을 위해, 나는 "ds"인터셉터를 비활성화 시켰습니다 (그렇지 않으면 시작 시간에 오류가 발생하여, Cygnus가 시작되어 일치하는 테이블 파일을 찾을 수 없었습니다).Cygnus HDFS 싱크를 사용할 때 null.txt 파일 가져 오기

Cygnus가 작동하는 것처럼 보이지만 엔티티 정보가 HDFS에 저장된 파일은 이상한 이름을 갖습니다 : "null.txt". 이 문제를 어떻게 해결할 수 있습니까?

답변

0

우선 do no 비활성화DestinationExtractor 요격기. 이것은 오리온에 의해 통지 된 컨텍스트 데이터가 지속될 목적지를 유추하는 코드 조각입니다. 대상이 HDFS 파일 이름, MySQL 테이블 이름 또는 CKAN 리소스 이름을 참조 할 수 있음을 관찰하십시오. 구성한 싱크에 따라 다릅니다. 일단 추측되면 대상은 내부 Flume 이벤트에 destination이라는 헤더로 추가되어 싱크가 지속될 위치를 알 수 있습니다. 따라서 비활성화 된 경우 해당 헤더는 싱크에서 찾을 수 없으므로 null 이름이 대상 이름으로 사용됩니다.

"일치하는 테이블 파일을 찾을 수 없습니다"라는 문제에 관해서는 (그리고 요격하여 요격기를 비활성화 시켰습니다), 이는 Cygnus 구성 템플릿이 cygnusagent.sources.http-source.interceptors.de.matching_table 매개 변수의 기본값이 잘못 되었기 때문입니다. 이것은 Cygnus 0.5.1에서 해결되었습니다. 니 0.5.1이 출시됩니다 동안

0

해결 방법은 다음과 같습니다 (@frb는 그의 대답에서 말한대로)

  • DestinatonExtractor에는 비활성화를 수행하지
  • 빈 매칭 테이블 파일을 작성하고 matching_table을 위해 사용 구성, 즉 : touch /tmp/dummy_table.conf 다음 cygnus 구성 파일에 설정 : cygnusagent.sources.http-source.interceptors.de.matching_table = /tmp/dummy_table.conf