Hadoopって何よ
AWSのEMRについて勉強したかったんだけど、
「EMRは分散処理フレームワークでHadoopを中心としたサービス」
って書いてあって頭の中めっちゃはてな????🤔
いかにもコンピュータ!!!みたいな単語バカだからわからん
だからまずHadoopについて調べてみることにした🐹
てかなんて読むのこれ、(笑)ハドゥープ?
※あってた!🌟
Hadoop
崇拝するclassmethod様から🙏
まずHadoopについて。
Hadoopは巨大なデータをバッチ処理するための並列分散処理基盤らしい🙄
そもそもバッチ処理と並列分散処理がわからなかったwwww
バッチ処理は簡単にいうとまとめて処理しよ〜!ってこと
並列分散処理は一つの処理を分割して同時に行うことらしい🌻
Hadoopは数千台のサーバーで並列分散処理できるから処理時間が1/1000になるだって!なんかすごそう😳
まじでわかりやすいclassmethod🐥(再掲)
ここにあるスライドわかりやすいよ!(未来の自分へのメモ)
https://dev.classmethod.jp/articles/cmstudy-amazon-emr/
あと↑に貼ってあるこれも参考にした!
ここででてくる単語がHDFSとMapReduce!いやわからん😅
この二つで並列分散処理してるらしい
HDFSとは
入れられたファイルはレプリケーションされて3つのスレーブサーバに収納される!🥳
もとはgoogleが開発したGoogle File Systemだけど、Hadoopの場合はHDFS,EMRの場合はEMRFSになる!
HadoopはたくさんあるGFSとMapReduceのフレームワークのひとつだから🧚♀️
大量のデータを並列に処理する仕組みのこと👀
データを分類するのがMap処理(Mapタスク)、
分類されたデータを実際に処理するのがReduce処理(Reduceタスク)っていう
これら二つのタスクを合わせてMapReduceジョブ🤟
あとサーバーを増やせば処理性能もスケールするみたいだからいいね💋
Spark
あともう一つHadoopと同じようなフレームワークの一つとしてSparkがあって、これはHadoopのMapReduceの部分がめっちゃ高速になったやつ!って認識で良いかな?🤔
同じ処理の繰り返しがHadoopは苦手だけど、Sparkは速いよ!ってかんじ
こちら参考に🙏
EMRについて
やっと本題!
EMRのアーキテクチャ
EMRは、マスターノード、コアノード、タスクノードの3つから構成されてる!✨
マスターノードは、コアノード、タスクノードにジョブを振り分ける。1台しかないから何あったら全部がストップしちゃう🥺
コアノードとタスクノードは実際にジョブを実行する!
コアノードはHDFSを持ってるけどタスクコードは持ってなくてコアノードのHDFSを参照してる、👀
だからタスクコードはコアノードにくらべて増減が簡単にできる🐥
でもタスクコードだけで構成はできないよ🧝♀️
分散処理基盤としてのEMR
AWSでEMRを起動するだけでEC2とか環境を自動で構築して運用してくれる!
S3を分散処理に扱いやすいストレージとして勝手に扱ってくれる😳
ジョブを振り分けたインスタンスがダメになっちゃったら別のインスタンスにジョブを振り分けることができる!
だからEMRに使うECインスタンスは、スポットインスタンスが相性いいよ😇
スポットインスタンスが矯正的に終了されても大丈夫💪
分散アプリケーション
Hadoop上でいろんな分散アプリケーションを実行できる🌟
Sparkもその一つ!
以上🌻
ふーん🤪