https://www.youtube.com/watch?v=oaRRtnkyXKI&t=1s
ここで見たものを纏めてみた。
並列分散処理とは
- データを複数台のサーバに分散・蓄積および並列処理するための手法
- 大量のデータを現実的な時間で処理する
並列分散処理基盤を用いないで単体のサーバでデータを処理しようとすると?
- データを抱えきれない
- データを現実的な時間で処理できない
オープンソースの世界では、大規模分散処理フレームワークのhadoopが誕生
gfs mapreduceを基にしたオープンソースによる実装
[hadoopとは?]
- 並列処理分散基盤フレームワーク
- 複数のサーバを使い、全体で大きな課題を解決させる。
[hadoopの役割]
- 大規模データの保存と処理を行う
- 並列分散処理フレームワーク
[実現できること]
現実的なコストで大規模分散処理ができる
※hadoopは繰り返しの多い処理と、複雑な処理が苦手。
それを解消するためにapache sparkが生まれる
[sparkとは?]
- 並列処理分散基盤フレームワーク
- 複数のサーバを使い、全体で大きな課題を解決させる。
[sparkの役割]
- メモリCPUディスクなどのリソースを効率的に利用
- SQLによる技術、機械学習、ストリーム処理などの分散処理で活躍
[実現できること]
- 複雑な処理も高速で処理できる
- 豊富なライブラリやAPIが付属し、複雑処理も容易に実装できる
※しかしsparkとfluentdなどで、ストリーム処理するには、流れるデータを受け取れない場合消えてしまうためそれを
解消するために、kafkaが生まれた。
[kafkaとは?]
- スケーラブルで高速な分散メッセージングシステム
(awsではaws kinesis)
[kafkaの役割]
- サーバ複数台で並列に処理
- ディスクへの記録などデータを失いにくい仕組みを備える
[kafkaで実現できること]
- 逐一送られるデータを高速に受け取ることが出来る