RDSでは、通常取れるメトリクスの拡張版というのが存在するようです
EMR インスタンスグループ
- マスター
- コア
- タスク
EMRのnannyプロセス
各ノードを監視するデーモンで、OOMとかでなんかのプロセスが死んだら、即座に自動で再起動してくれる。
tail -f /emr/service-nanny/log/service-nanny-yyyy-mm-dd
しつつinstance-controllerなどのプロセスをキルすると、service-nannyのログにinstance-controller再起動のログが書き込まれているのが分かる。
nannyのプロセスをキルしてからinstance-controllerのプロセスをキルすると、instance-controllerが再起動しないのがわかる。
icmp
ping とは、ICMPプロトコルを使用したネットワークの診断プログラム
gmetad/gmond
- gmetad gmondのデータを集約するデーモン
- gmond 各ノードにいて各サーバーの情報を集めるデーモン
YARNとかDataNodeとかNameNodeとか
クラスタリソース管理フレームワーク。次世代MapReduceとかいう雑なイメージは捨てろ。
YARN構成
- Resource Manager クラスター全体のリソース管理をするマネージャー。Application Masterからの要請を受けてNode Managerにコンテナーのリソースを付与する(常時起動)
- Application Master Resource ManagerとNode Managerを仲介する(都度起動)
- Node Manager 実際にアプリケーションを実行するワーカー(常時起動)
DataNodeとかNameNodeとか
- DataNode データを保存するノード
- NameNode メタデータを管理するノード
homebrew v1.1.12
xcode 8.3対応がメインだと思う
scala v2.11.9
release noteが見当たらない。
Digdag EMR
emr>: Amazon Elastic Map Reduce — Digdag 0.9.5 documentation
typeのところから一部抜粋。spark/hive/script/commandが使えると思う
- type: hive script: queries/hive-query.q vars: INPUT: s3://my-bucket/data/ OUTPUT: s3://my-bucket/output/ hiveconf: hive.support.sql11.reserved.keywords: false - type: spark application: spark/pi.scala - type: spark application: s3://my-bucket/spark/hello.py args: [foo, bar] - type: spark application: spark/hello.jar class: com.example.Hello jars: - libhello.jar - s3://td-spark/td-spark-assembly-0.1.jar conf: spark.locality.wait: 5s spark.memory.fraction: 0.5 args: [foo, bar] - type: spark-sql query: spark/query.sql result: s3://my-bucket/results/${session_uuid}/ - type: script script: s3://my-bucket/scripts/hello.sh args: [hello, world] - type: script script: scripts/hello.sh args: [world] - type: command command: echo args: [hello, world]
Hadoop タスクスケジューラー リンク
FIFOスケジューラーとか、フェアスケジューラーとか、ある。