2014-04-07 4 views
2

ExecSource (cat 명령)를 사용하여 apache-flume (하나의 flume 에이전트), 파일 채널 및 elasticsearch Bulk를 사용하여 사용자 정의 된 싱크를 사용하여 두 노드 elasticsearch 클러스터에 데이터를로드합니다. 및 XContentBuilder java apis.Elasticsearch 인덱싱 성능 튜닝

flume에서 이벤트 수집은 8000 이벤트/초 (1 이벤트 246 바이트 크기)의 속도로 발생하지만 elasticsearch에서 인덱싱하는 동안 3000 이벤트/초로 감소합니다.

elasticsearch의 인덱싱 성능을 flume의 수집 속도에 가깝게 맞추려면 어떻게 조정할 수 있습니까?

답변

3

나는 here을 다운로드 할 수있는 스크립트를 작성했습니다. 그 쉘 스크립트 그러나 나는 당신이 당신의 플랫폼에 관계없이 번역 할 수 있다고 확신합니다. 인덱싱 성능에는 많은 변수가 있습니다. 하드웨어 및 시스템 변수. 거기에 꽤 많은 자원이 있습니다.

+0

감사합니다. 수집 속도와 거의 동일한 수준으로 처리량을 향상시킵니다. – rudd0211

+0

@ rudd0211 위대한! 도움이 된 것을 기쁘게 생각합니다. – Nate

+0

@Nate 나를 위해 스크립트를 공유해 주시겠습니까? 링크에 지금 액세스 할 수 없습니다. – user703555

0

나는 logstash가 elasticsearch에 쓰는 방법을 살펴볼 것입니다. 특히 성능을 높이기 위해 인덱싱 간격을 5 초로 설정했습니다. 압축이 도움이되는지 방해하는지 테스트 할 수도 있습니다.

그렇지 않으면 클러스터 크기가 늘어납니다.

0

파일 채널 대신 메모리 채널을 사용하면 몇 배의 출력 속도가 향상됩니다.

+0

메모리 채널을 사용해 보았는데 그 속도가 기하 급수적으로 증가한다는 것을 알았습니다. 그러나 내구성은 엄청나게 방해 받았다. 에이전트를 죽일 때 레코드를 잃을뿐만 아니라 일부 레코드가 누락되어 데이터 처리가 어색하게 혼동되었습니다. 그래도 고마워. – rudd0211