Apache Slider
YARN ベースの Hadoopで長期間稼動するアプリケーションのためのフレームワーク
Apache™ Hadoop では、そのデータプラットフォームに、新しいエンジンを次々と取り込んでいます。これはデータを1つのリポジトリに効率的に保存し、さまざまな方法で同時に利用することを、企業が望んでいるからです。企業は、SQL やストリーミング、機械学習だけでなく、従来のバッチ処理もすべて同じクラスタで行うことを望んでいます。これらのアプリケーションの多くは、データが来たらいつでも処理が可能な「オールウェイズオン (always-on)」あるいは「長期稼動 (long-running)」形式のサービスである必要があります。
Sliderでは、このような長期稼動サービス (Apache HBase、Apache Accumulo、Apache Storm など) を YARN の中に取り込み、必要以上の処理リソースを使用することなく、データ量が変化する場合にも十分なリソースを提供できるようにします。
Slider の機能
Slider は、これらHadoop内で長期稼動するデータアクセスアプリケーションの導入と管理を行うためのフレームワークです。
YARN のリソース管理機能を利用する Slider によって、これらのアプリケーションの導入やライフサイクルの管理、さらにアプリケーションが稼動中であっても、スケールアップやスケールダウンが可能となります。Slider は、既存の長期稼動サービス (Apache HBase、Apache Accumulo、Apache Storm など) を YARN の中に取り込み、必要以上の処理リソースを使用することなく、データ量が変化する場合にも十分なリソースを提供できるようにします。
ユーザーは Apache Slider によって、HadoopおよびYARN で異なるバージョンの多様な長期稼動アプリケーションを作成し、稼動させることができます。各アプリケーションインスタンスは、別々に設定を行ったり、運用ライフサイクルを個別に管理することができます。Slider は、アプリケーションが稼動している間でも、インスタンスをオンデマンドで拡張または縮小させることができます。コンテナに障害が発生した場合、Slider は YARN の機能を透過的に利用して、アプリケーションのリカバリを実施します。これらはすべて、Liniux または Windows プラットフォーム上で実施可能です。
こうした Apache Slider の機能によって、Hadoop を稼動させているエンタープライズに、主に3つのメリットを提供します:
Benefit | Description |
---|---|
Turnkey YARN enablement | Enables long-running applications to take advantage of YARN’s benefits without code changes:
|
Hadoop integration | Applications running with Apache Slider cooperate with the Enterprise Hadoop ecosystem in an integrated way--leveraging Hadoop’s data and processing resources, as well as its security, governance, and operations capabilities |
Lifecycle management | Automatically makes applications manageable through Apache Ambari without any additional work |
Slider の動作の仕組み
Apache Sliderでは、すべてのアプリケーションをコンポーネントのセットと見なします。各コンポーネントは、独自の設定、スクリプト、データファイルを持つ、デーモンまたは実行可能ファイルになります。各コンポーネントは、複数のインスタンスを持つことができます。Slider は、コンポーネントのインスタンスを管理することで、アプリケーションを管理します。
アプリケーションコンポ―ネントのインスタンスを管理するために、Slider は各インスタンスに対して YARN アプリケーションマスターを立ち上げます。アプリケーションマスターが立ち上がると、Slider はリソースをアロケートまたはデアロケートして、アプリケーションインスタンスを開始または停止させます。これは、Slider クライアントまたは YARN のリソーススケジューリングプリエンプション (resource scheduling pre-emption) を介して、アプリケーション管理者のリクエストに応じて実行することができます。