YARNサービス

概要

YARNサービスフレームワークは、YARN内で長期間実行されるサービスをネイティブにホストするための、ファーストクラスのサポートとAPIを提供します。簡単に言うと、YARN上でコンテナ化されたサービスを管理するためのコンテナオーケストレーションプラットフォームとして機能します。YARNでは、Dockerコンテナと従来のプロセスベースのコンテナの両方をサポートしています。

このフレームワークの役割には、構成の解決とマウント、サービスの停止/開始/削除などのライフサイクル管理、サービスコンポーネントの増減、YARNでのサービスのローリングアップグレード、サービスの正常性と準備状況の監視などが含まれます。

YARNサービスフレームワークは、主に以下のコンポーネントで構成されています。

  • コンテナオーケストレータとして機能するYARN上で実行されるコアフレームワーク(ApplicationMaster)。すべてのサービスライフサイクル管理を担当します。
  • ユーザーがシンプルなJSON仕様を介してYARNと対話してサービスをデプロイ/管理するためのRESTful APIサーバー。
  • YARNサービスレジストリによってバックアップされたDNSサーバー。標準的なDNSルックアップによってYARN上のサービスの検出を可能にします。

YARNサービスフレームワークを試すべき理由

YARNサービスフレームワークを使用すると、既存のサービスを簡単にYARNに移行できます。アプリケーション管理の複雑な低レベルの詳細を隠蔽し、ユーザーが新しいコードの記述を強制されることを軽減します。新しいサービスの開発者は、YARNの内部構造を気にする必要がなく、サービスのコンテナ化にのみ集中できます。

さらに、この機能の大きな利点は、従来のバッチ処理ジョブと長期間実行されるサービスの両方を単一のプラットフォームで有効にできることです!これらのワークロードを組み合わせる利点は2つあります。

  • 処理するクラスタが1つだけになるため、クラスタ運用が大幅に簡素化されます。
  • バッチジョブとサービスの両方がクラスタを共有することで、リソースの利用率が大幅に向上します。

始め方

この機能はアルファ状態です。そのため、APIやコマンドラインは変更される可能性があります。ドキュメントは随時更新していきます。

クイックスタートでは、YARNにサービスをデプロイするための簡単な手順を説明するクイックチュートリアルを示しています。

実践方法

  • 概念:フレームワークの内部構造と、YARN上でサービスを実行するためのYARNコアのいくつかの機能について説明します。
  • サービスREST API:YARN上でサービスをデプロイ/管理するためのAPIドキュメント。
  • サービスディスカバリ:YARNでのサービスディスカバリメカニズムについて説明します。
  • レジストリDNS:レジストリDNSの内部構造を詳しく説明します。
  • :いくつかのサンプルサービス定義(`Yarnfile`)を示します。
  • 設定:YARN上のカスタムサービスの構成方法について説明します。
  • サービスアップグレード:実験的な機能であるYARNサービスのアップグレード方法について説明します。