タグ

ブックマーク / ogibayashi.github.io (3)

  • Apache Flinkを試している - Tech Notes

    耐障害性と拡張性のあるストリーム処理基盤が欲しい、と思ってApache Flinkを調べている. 今はリアルタイム集計にNorikraを使っていて、これはとてもカジュアルに使えて良いのだけど、以下の様なケースだと難しい。 比較的止めたくない処理で、サーバ障害時にも自動的に回復して欲しい 1日とか長いtime windowの集計をしているので、途中でサーバが落ちて集計中の状態が失われると辛い トラフィックが増えてきて、複数サーバに負荷を分散したい 例えばストリームに含まれているIDに対応する値を外部のテーブルから取ってくるような、ちょっと複雑な処理をしたい Flinkとはどのようなソフトウェアか 一言で言うと、対障害性と拡張性を備えた、分散ストリーム処理基盤。バッチ処理もストリーム処理の仕組みでできるよね、ということでバッチ用、ストリーム用両方のAPIが提供されている。実行環境としては、Ha

    sh19910711
    sh19910711 2024/04/02
    "Stormでは各処理オペレータはstatelessになっていて、落ちると状態が失われる / Spark Streamingは正確にはストリーミングではなくてマイクロバッチなので、そのバッチの間隔にストリーム処理のwindowが左右される" 2016
  • 多種多様なログをFluentd-Elasticsearch-Kibanaしたメモ - Tech Notes

    自分のところでは、社内の様々なログをfluentdで集めているのだけど、それらをElasticsearchに入れて、Kibanaで見えるようした話を書いてみる. Fluentd, Elasticsearch, Kibanaな組み合わせは既に多くの人が使ってるし、ブログ等の記事も沢山ある. けど、いくつか 引っ掛かった点などもあるので、それらを書き留めて置こうと思う. 要件 fluentdでストリームで集めてるログを、リアルタイムに近い鮮度でKibanaで見たい. 見たい、というのは検索したり、集計・可視化したり、ということ Kibanaでは短期(2日とか)のログが見えれば良い 規模感的には、ログの種類(=fluentdのtag数)が200くらい、流量はピークで2万メッセージ/秒くらい. が、実際には最も流量の多いログは除いたので、この半分〜3分の1くらいの流量 10shard/index

    多種多様なログをFluentd-Elasticsearch-Kibanaしたメモ - Tech Notes
  • Apache Flinkのstate管理について - Tech Notes

    はじめに ストリーム処理の中で、処理をstatefulにしたい、という要求はよくある。例えば、1時間のtime windowで件数を集計している場合、ストリームが流れるにつれて内部で保持しているカウンタは増加していく. そして、障害等で再起動をした時とかには、そのカウンタの値も一緒に復旧したい. Flinkにおけるstateの保存 これに対して、Apache Flinkは定期的に処理状態のスナップショットを取得する、という方法で対応している. そして、分散環境でまともに全てのスナップショットを取るのは辛いので、分散してスナップショットを取るようにしている. 具体的にはここ に詳しいが、ストリームのソースから定期的にBarrierと呼ばれる印を流して、各オペレータはこれを受け取るとスナップショットを保存するようになっている. こうすることで、処理全体を止めずに一貫性のあるスナップショットを取

  • 1