IT Japan

Flume, Fluentd의 Name node HA 지원 본문

카테고리 없음

Flume, Fluentd의 Name node HA 지원

swhwang 2016. 7. 29. 18:03
반응형

로그 수집 제품 대상 Hadoop HDFS 경우 최근 HA 구성하는 케이스도 많을 것이다. 클라이언트 에서 보면 Name node 하나 인 경우에 특히 막히는 것 아니지만, HA되면 "어 여기 어떻게하는 거지"라고되기도하기 때문에 Flume / Fluentd에서 각각 설정 적는다.


Flume



HDFS 전송 기본적으로 사용할 수있다. sink 유형 hdfs한다. 이하, sink 정의 만을 기재. namenode-cluser-name은 HDFS 논리 클러스터 이름 지정한다.

# Define the sink.

agent.sinks.h1.channel = c1
agent.sinks.h1.type = hdfs
agent.sinks.h1.path = hdfs://namenode-cluser-name/path/to/sink-dir
agent.sinks.h1.hdfs.fileType = DataStream # sink先でのファイル形式指定。デフォルトはSequenceFile。
agent.sinks.h1.hdfs.filePrefix = AppData # sink先ファイルのプレフィックス。指定がないと"Flume"になる。
agent.sinks.h1.hdfs.batchSize = 1000


Flume의 경우 Append (추 기형)이 아니므로 지정된 디렉토리에 미세한 파일이 많이 생성된다. 디렉토리 경로를 동적으로 날짜 / 시간 등의 단위로 할 수도있을 것 같지만, 자세한 것은 잊어 .... 이 경우라고 파일 이름은 AppData [UNIX timestamp]가된다. Name node 자원 관리 비용 및 I / O 부하를 생각하면 당연히 효율이 나쁘기 때문에, 그것은 Flume의 불리. HDFS find 정기적으로 청소하거나 병합하거나, 그 근처의 구현이 필요하다.

그리고, namenode-cluser-name 클러스터를 짜고있는 호스트 정보는 어떻게 인식 되는가하면, core-site.xml, hdfs-site.xml을 불러 들이면 해결하는 것. 구체적으로는 / etc / flume-ng / conf이 두 파일을 배치한다. 이 근처는 과연 Hadoop 제품군이므로 친 화성이 높다. 반대로 말하면, Hadoop 클러스터에서이 두 가지 설정에 변경이 발생하면 Flume Aggregator 노드 측도 변경 적용되므로주의 (영향이없는 부분도 공통으로 유지해 두는 것이 뭐 근육에 있을 것이다 때문).



Fluentd


그런 Fluentd 어떻게 될까.
webhdfs 플러그인 설치 한 후, td-agent.conf 다음과 같이 설정합니다.



<match appdata.**>
  type             webhdfs
  namenode         namenode1:50070
  standby_namenode namenode2:50070
  path             /path/to/appdata.%Y%m%d_%H.log
  flush_interval 10s
</match>


역시 과연 논리적 클러스터 이름 인식 할 수 없으므로 호스트 이름 나누어 설명하게 될 것이다군요. 대상 파일 Fluentd 경우 기본적으로 Append된다. 세세한 파일로 나누어하려면 어딘가에 방식이 써 있었다 생각이 들지만, 그것도 자세한 것은 잊어 .... 아무튼, 특정 경우를 제외하고 일부러 그렇게 할 필요 없을 것이다.

반응형
Comments