認定ビッグデータ - 専門知識 勉強記~EMR~
今回は EMR に関する勉強記録となる.なお,記事は適宜更新していく.
概要
EMRの層
- Application:Hive,Pig,Sparketc
- Batch : MapReduce
- Interactive: Tez
- In Memory: Spark,Flink
- YARN: Cluster Resource Management
- Storage:S3(EMRFS),HDFS
ビッグデータの中で、イベントプロセスとデータプロセスを担当
構成要素:分散処理基盤、分散処理アプリケーション
アーキテクチャ
マスター:コアとタスクを管理、F/O非対応、1つのみ。障害は滅多に発生しないけど、万が一を考えてデータはS3に退避するのが推奨。
コア:1つ以上のノード。データノードが動きローカルディスクがHDFS(インスタンスストア、EBS)が使われる。スレーブノードがダウンしてもじょ実行できる。コアノード追加可能。HDFS容量増加、CPU/MEM増設可能。
タスク:HDFSを持たない以外コアと一緒。RIやスポットを適用するならここ。
アプリケーションの特徴
分散処理系
- Hadoop:文処理の基盤。YARN(リソース管理)+HDFS(分散ストレージ)の上で各種アプリが実行される。MapReduceもその1つ。多くのEMRアプリがYARNを使うのでほぼ必須
- Hive:YARN上で実行される、分散SQL実行環境。実行エンジンとして、MapReduceなどが使える。S3のでーたをチョ憶説読み書き可能
- Tez:YARN上でDAGを実行するのに最適化したエンジン・。Hiveの実行エンジンに指定するだけで、多くのHiveクエリが高速化する。
- Spark:分散処理のフッレームワーク。インメモリなMapReduce。YARN上で実行でき、MapReduceよりも高速化かつ簡単に分散処理可能。Spark SQL、Spark Streaming、MLlib(機械学習)もできる
- Flink:YARN上で実行でき、ストリーミング処理もバッチ処理もどちらも同一のランタイムで実行する
- Presto:分散SQL実行エンジン。HDFSとS3など複数のデータソースのデータを処理できる。対話的に処理できる。
- Pig:Pigは大規模データセットを処理するためのスクリプト言語(Pig Latin)であり、実行観光である。PigはHive同様、内部でMapperとReduceに置き換えてデータ処理を行う。Hadoopのシェルスクリプトのような動きができる。Pigはデータのグループと結合処理といったSQLのような処理も可能。
- HBase:HDFS上に構築される分散KVS。スループットと大容量
- Impale:SQL使ったインタラクティブ(対話的)アナアドホッククエリを行う。HadoopエコシステムのOSS。超並列処理(MPP)をMapReduceの代わりに使う。HBaseテーブルまたはHDFSのデータを素早く蹴りできる。
- Hunk:EMRとS3のデータをインタラクティブに探索、分析、可視化してSplunk分析に活用できる
個別のアプリケーションのメモ
Hive
SQLを使ってデータ処理ができるHadoopアプリ
Hiveを使う場合、ジョブフロー起動時にアプリケーション構成を決める必要あり:2つ。バッチジョブフロー、インタラクティブジョブフロー
前者は、データ処理が終了すると処理結果をS3に格納し、ジョブフローは消滅する
後者は、データ処理が終了してもジョブフローは存在し、次の作業指示待ちになる
HiveでKinesisのデータを処理できる:Stream内のシャードごとにMapperがデータを読み出す(Kinesisの保存デーータをフルスキャン、DynamoDBのチェックポイントを使うと前回読み出したデータ移行のみ読み込める)
処理例
1、テーブル定義でHDFSやS3をソースに指定してサーバーにアップ
2、テーブル定義がメタデータ(マスターのMySQL)として保存される
3、定義したテーブルに対して処理を実行(SQL
4、テーブルのメタデータを取得
5、クラスタに処理を以来
6、実際のデータソース(HDFS、S3)から読み出しつつ指定した処理を行う
EMRとYARN
YARN: グローバルリソースマネージャー:システム全体のリソースの管理権限。役割は、スケジューラとアプリケーションマネージャー。
マシンごとのノードマネージャー:コンテナ、リソースの監視の状態
MapReduce,Hive,Pig,Spark on YARN
EMRクラスタがもつ計算資源をYARNがアプリケーションに割り振ってくれる
マルチテナントなクラスタも簡単に作れる
HDFS
ファイルシステム
- インスタンスストア:レイテンシー
- EBS
- S3(EMRFS):暗号化、ライフサイクルとセキュリティポリシー。DynamoDBがバックにいる。Kinesis Firehosとの統合も簡単。
HDFS vs EMRFS
・拡張性:S3
・耐障害性:S3
・耐久性:S3
・コスト:S3
・スピード:EBS/インスタンスストア
・セキュリティ:S3(IAM、バケットポリシー、SSL)、EBS/インスタンスストア(ケルベロス、YARN、SSLアップロード)
結局どっち選ぶ?
S3:拡張性、持続性、勝ち
EBS:パフォーマンス、ParquetとORCsのような特別なフォーマット
EMRのアンチパターン
- 小さなデータセット
- ACIDトランザクション要件:アトミック生、整合性、分離、堅牢性を要求するワークロードに対しては別のRDSやEC2を使うほうがいい
Author And Source
この問題について(認定ビッグデータ - 専門知識 勉強記~EMR~), 我々は、より多くの情報をここで見つけました https://qiita.com/tada_infra/items/07296cfec27a7d1d5bd9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .