Alibaba Blink のリアルタイムタスクのカスタムリソースとは、リアルタイムコンピューティング Flink (BETA) 内で詳細なリソースを構成するための高度なモードを指します。 フルマネージド Flink によって導入されたこのモードでは、ジョブのスループット要求に合わせてリソースを正確に割り当てることができます。 システムは Native K8s モードでジョブを自動的に実行し、タスクマネージャー (TM) の仕様と数量をスロットの仕様とジョブの同時実行数に合わせて調整します。 このトピックでは、Dataphin で Alibaba Blink リアルタイムタスクのリソースをカスタマイズする方法について説明します。
Alibaba Blink カスタムリソース構成エントリ
Dataphin ホームページで、上部メニューバーの [開発] をシングルクリックして、[開発] ページに移動します。
[開発] ページで、次の図をガイドとして使用し、BLINK_SQL タスクのカスタムリソース構成ページに移動します。
構成の説明
リソース構成ページにはトポロジーが表示されます。各ブロックは、リソースを設定可能な個々のコンピューティングタスクを表します。 同じ計算マシン上のノードをグループ化することで、ネットワーク間のデータ転送を最小限に抑え、パフォーマンスを向上させます。
デフォルトでは、システムがリソース構成を提案します。
グループランタイムパラメーターの構成
目的のグループの右上隅にある
をシングルクリックして、[グループランタイムパラメーターのカスタマイズ] ダイアログボックスを開き、パラメーターを設定します。
パラメーター
説明
core
通常 0.25 に設定されます。core パラメーターは、1 つの CPU が最大 4 つの同時スレッドをサポートできることを示し、最大値は 1 です。
heap_memory
Java アプリケーションのヒープメモリサイズを MB 単位で指定します。 heap_memory とそのコンポーネントは、JVM コマンドラインパラメーターを使用して調整できます。 プログラムの規模によっては、プログラムキャッシュなどのオーバーヘッド用に heap_memory を割り当てる場合があります。
ヒープメモリサイズとその構成要素は、さまざまな JVM コマンドラインパラメーターを使用して管理できます。 通常、Blink プログラムでは、プログラムキャッシュ用にヒープメモリを割り当てるなど、追加のヒープメモリのオーバーヘッドが必要になります。 そのため、プログラムの規模に基づいてサイズを調整する必要があります。
parallel
同時スレッドの数を決定します。 タスク実行に適した数を選択してください。数は多いほど多くのリソースが必要になり、必ずしもパフォーマンスが向上するとは限りません。 通常、計算ノードは 1 秒あたり 2,000 ~ 4,000 個のデータピースを処理できます。
重要ソースが tt の場合、tt のキューサイズが同時実行数を制限します。 この制限を超えるとエラーが発生します。
direct_memory
ダイレクトメモリサイズ (MB 単位) は、JVM のヒープ外で使用されます。 igraph または swift を使用するタスクに不可欠であり、適切な値は 16 ~ 32 MB です。 ダイレクトメモリを使用すると、Java ヒープとネイティブヒープのデータコピーを回避することで、効率的なデータの読み取りおよび書き込み操作が可能になります。
Java NIO (New I/O) は、データの読み取りおよび書き込み操作用のチャネルとバッファーを備えています。 direct_memory パラメーターを設定することにより、ネイティブ関数を使用して非ヒープメモリを割り当てることができます。 Java ヒープ内で direct ByteBuffer オブジェクトを使用すると、直接読み取りが可能になり、Java ヒープとネイティブヒープ間でデータを転送する必要がなくなり、読み取りと書き込みのパフォーマンスが向上します。
native_memory
ネイティブメモリサイズ (MB 単位) は、オペレーティングシステムプロセス、バイトコード長、スレッド数、ガベージコレクションデータ、サードパーティパッケージなど、いくつかの要因によって異なります。 たとえば、32 ビット OS は最大 3 ~ 4 GB のネイティブメモリをサポートする場合があります。
ネイティブメモリの格納場所:
ガベージコレクションとヒープ管理のための Java オブジェクトステータス。
JNI 呼び出し情報。
Java バイトコードとマシンコードを含む JIT コンパイルデータ。
ダイレクトバッファーの詳細。
パラメーターを設定したら、[OK] をシングルクリックします。
オペレーターランタイムパラメーターの構成
[オペレーターランタイムパラメーターのカスタマイズ] ダイアログボックスにアクセスし、パラメーターを構成します。
[オペレーターランタイムパラメーターのカスタマイズ] ダイアログボックス内の core、heap_memory、parallel、direct_memory、および native_memory パラメーターの詳細については、「グループランタイムパラメーターの構成」および「」をご参照ください。 次の表では、state_size パラメーターと chain_strategy パラメーターのみについて説明します。
パラメーター
説明
state_size
ジョブの実行中に使用されるデフォルトの状態データサイズ。通常は 0 に設定されます。
chain_strategy
ノード接続ポリシー。オプションは次のとおりです。
Always: デフォルト設定。特に指定がない限り、すべてのノードが同じマシン上にあることを示します。
Never: ノードは個別にデプロイされ、他のノードとマシンを共有しません。
Head: ノードはマシンを共有できますが、グループのヘッドノードとしてのみ共有できます。
重要Head と Never はあまり一般的ではないため、通常は Always がデフォルトの選択肢です。
パラメーターを設定したら、[OK] をシングルクリックします。