Elasticsearchへ大量のデータを送るで躓いた

少し前のことだけど、FluentdとElasticsearchとKibanaでSplunkのようにビッグデータ分析ができるんじゃないかと検証をした。

 

ただ、テストデータの量が多すぎたのか、一筋縄ではデータをインポートできなかった。数百GBくらいのデータを1度にインポートしようとしていた。

 

Web上をいろいろ探してみたけど、基本的に解決方法はノードを増やすか、メモリをもっと積むこと。みんな数十GBのメモリを積んでいてびっくりした。

 

ノードも1台、メモリも8GB程度の環境で大量データをElasticsearchに取り込むとメモリ不足(OutOfMemory)でインポートが滞ります。

 

Fluentdをつかってちょこっとずつ送信すればよいみたいです。

その設定はチャンクサイズを小さくすること。

 

Fluentdのバッファサイズはチャンク(chunk)サイズ×キュー(queue)サイズなので、チャンクサイズを小さくする代わりにキューサイズを大きくしてあげないと、大量データの場合Fluentd側で取りこぼすので注意してください。