Cloudera Manager 5.7の新機能: クラスタ使用状況レポート

投稿:Vikram Srivastava:2016年5月11日
カテゴリー:Cloudera Manager Impala OpsおよびDevOpsパフォーマンス YARN

Cloudera Manager 5.7では、クラスタ管理に有効なクラスタ使用状況レポートが利用可能に

エンタープライズデータハブは、複数のチームで共用するケースがほとんどです。このようなマルチテナント環境において、クラスタ管理者(アドミニストレータ)は、テナント間でリソースが適正に共有され、特定のテナントが他に影響を与えるようなジョブを稼動させないようにする必要があります。マルチテナント環境におけるリソース使用状況をより良く把握できるよう、Cloudera 5.7(Cloudera Enterprise Flex および Data Hub エディション)では、クラスタの使用状況をレポートする新機能を提供しています。本機能を使用して、クラスタの使用状況に関する全般的な情報に加え、YARNアプリケーション(MapReduceやApache Sparkジョブを含む)やApache Impala(インキュベーション中)クエリのリソース消費状況を確認することができます。

Cloudera Managerでは、既にYARN 動的リソースプール (Dynamic Resource Pool) を構成するための使い易いユーザーインタフェースを提供していますが、さらにCloudera Manager 5.7からは、Impala アドミッションコントロールプール(Admission Control Pool) を独立して構成できるようになりました。しかし、実際のリソース使用パターンに合わせてプールを構成することは決して容易ではありません。それぞれのプールのリソース消費パターンは時間とともに変化するため、アドミニストレータは、クリティカルなジョブがSLAを満足できるよう十分注意を払い続けなければなりません。クラスタ使用状況レポートは、リソース消費の平均値やピーク値をもとにしてリソース計画を立てるためのガイドとなります。

本投稿では、レポート内のこれまでとは異なる機能と、クラスタのリソース消費状態をどのようにアドミニストレータが理解できるかについて説明します。

Overviewのページ

スクリーンショット 2016-05-10 04.33.28

図1 Overview

Overviewページは2つのセクションに分かれています:

  • 上部のセクションでは、クラスタ上のプロセスの稼働やユーザーのアクティビティによるリソース消費状態のOverviewが表示されます。レポートには、リソース消費の平均値、最大値、「平均日次ピーク値」(日次の最大値の平均を計算した値)が含まれています。
  • 下部のセクションには、クラスタで稼働するYARNアプリケーションとImpalaクエリによって消費されているリソースの割合が表示されます。ここでは、プール別(またはユーザー別)のリソース消費状況も表示されます。

YARNレポーティング

YARNレポートには3つのタブがあり、YARNリソースプールを構成するため、それぞれ異なる視点から情報を提供します:

使用状況 (Utilization) タブ

スクリーンショット 2016-05-10 04.35.42

図2 YARN使用状況

このタブでは、Overviewページと同様に、テナント別のリソース使用状況が表示されていますが、対象はYARNアプリケーションに限定されています。本ページには、アプリケーションに割り当てられながら、未使用で無駄になっているリソースの総量も表示されます。リソースを無駄にしているアプリケーションを特定するためには、Cloudera ManagerのYARNアプリケーションページで、図3に示すよに、unused_memory_seconds または unused_vcore_seconds で絞り込んで検索を行います。

スクリーンショット 2016-05-10 04.35.57

図3 リソースを無駄にしているアプリケーションの検索

キャパシティプラニング (Capacity Planning) タブ

スクリーンショット 2016-05-10 04.36.07

図4 YARNキャパシティプランニング

YARNのキャパシティプラニングタブには、割り当てたリソースが、ワークロードに十分なものかどうかを判断するために役立つ各種の情報が含まれています。このタブには「Wait Raito During Contention(コンテンション時の待ち状態比率)」という新しい指標が表示されています。この指標は、ペンディング状態、つまりプールのリソース待ち状態にあるコンテナの比率を意味します。クリティカルなジョブを稼働させる場合、プールの待ち率はできるだけ低く抑えたいはずです。プールの待ち率を抑えるために、プールに割り当てるリソースを増やすことが考えられます。それが不可能な(例えば、多くのプールで高い待ち率になっている)場合は、YARNアプリケーションを稼働させるワーカーノードを追加する必要があります

プリエンプションチューニング (Preemption Tuning) タブ

スクリーンショット 2016-05-10 04.36.19

図5 YARNプリエンプションチューニング

YARNのプリエンプション(優先的なリソースを配分)機能によって、過剰にリソースを消費しているプールのコンテナを強制的に退去させ、他のプールにあるアプリケーションの処理を進めることができます。このレポートには、競合発生中(つまり、プールに最低でも1つのペンディングコンテナがある場合)にプールに割り当てられていた平均リソースと、プールの定常的(steady)および瞬間的(instantaneous)な適正量が同時に表示されます。競合発生時の割り当てリソースが適正量を下回る場合、プリエンプション設定をより積極的な数値にして、該当するプールにあるアプリケーションがより迅速に適正量を確保できるようにします。プリエンプション設定の詳細については、Enabling and Disabling Fair Scheduler Preemption をご参照ください。

Impala レポーティング

Impala レポートを参照してアドミッションコントロールプールをチューニングすることで、ユーザークエリの効率化を図ることができます。Impalaレポートには、クエリ (Queries)、ピーク時メモリ使用 (Peak Memory Usage)、スピルされたメモリ (Spilled Memory) という3つのタブがあります。

クエリ (Queries) タブ

スクリーンショット 2016-05-10 04.36.29

図6 Impalaクエリ

クエリタブには、アドミッションコントロールの結果、成功したクエリの割合と失敗に終わった割合が表示されます。特にこのレポートには、クエリの実行に必要な十分なメモリがない、あるいは同時に多数のクエリがプールにサブミットされたことが原因で、失敗に終わったクエリの数が表示されます。こうした理由でクリティカルなクエリが失敗している場合、該当するプールの制限値を引き上げる必要があります。

ピークメモリ使用 (Peak Memory Usage) タブ

スクリーンショット 2016-05-10 04.36.41

図7 Impalaピークメモリ使用

ピークメモリ使用タブのレポートウィンドウには、ピーク時のメモリ使用状況が表示され、Impalaのキャパシティプラニングに活用することができます。本レポートには、全般的な状況に加え、テナント別のピーク使用値が表示されます。クラスタ内のピーク値が使用可能リソースの平均値に近づいた場合、Impalaデーモンを稼働するワーカーノード数を増やす必要があります。

スピルされたメモリ (Spilled Memory) タブ

スクリーンショット 2016-05-10 04.36.59

図8 Impalaスピルドメモリ

Impalaレポートのスピルされたメモリタブには、それぞれのプールにおける1時間あたりのスピルされたメモリの総量(メモリから溢れ出た量)が表示されます。対象がメモリから溢れてディスクに追い出されると、Impalaのクエリパフォーマンスが非常に悪化します。重要なクエリがディスクに溢れ出たデータを対象に実行されているようであれば、SQL Operations that Spill to Disk に説明されている方法で状況の改善を図ってください。

まとめ

マルチテナント環境におけるリソース管理は、システム管理者にとって容易な問題ではありません。クラスタの使用状況レポートは、使用パターンに関する詳細な情報を提供し、システム管理者が重要な要因を考慮に入れながら、プールの構成を設定できるようにします。

この機能の使用方法に関する詳細な説明は、Cluster Utilization Reports をご参照ください。また、YARNImpalaの機能については、ビデオでもご覧いただくことができます。

Vikram Srivastava は、Clouderaのソフトウェアエンジニアです。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.