Elasticsearchへ大量のデータを送るで躓いた
少し前のことだけど、FluentdとElasticsearchとKibanaでSplunkのようにビッグデータ分析ができるんじゃないかと検証をした。
ただ、テストデータの量が多すぎたのか、一筋縄ではデータをインポートできなかった。数百GBくらいのデータを1度にインポートしようとしていた。
Web上をいろいろ探してみたけど、基本的に解決方法はノードを増やすか、メモリをもっと積むこと。みんな数十GBのメモリを積んでいてびっくりした。
ノードも1台、メモリも8GB程度の環境で大量データをElasticsearchに取り込むとメモリ不足(OutOfMemory)でインポートが滞ります。
Fluentdをつかってちょこっとずつ送信すればよいみたいです。
その設定はチャンクサイズを小さくすること。
Fluentdのバッファサイズはチャンク(chunk)サイズ×キュー(queue)サイズなので、チャンクサイズを小さくする代わりにキューサイズを大きくしてあげないと、大量データの場合Fluentd側で取りこぼすので注意してください。