This documentation is for an unreleased version of Apache Flink. We recommend you use the latest stable version.
Azure Blobストレージ #
Azure Blobストレージは、様々なユースケースにクラスタストレージを提供するMicrosoft管理のサービスです。 Azure BlobストレージとFlinkを使って、読み取りと and 書き出しを行うことも、ストリーミング状態バックエンドを組み合わせて使うこともできます。
Flinkは、wasb://またはabfs://の両方を使ったAzure Blobストレージへのアクセスをサポートします。
Azureでは、wasb:// は下位互換性のために動作しますが、ADLS Gen2ストレージアカウントへのアクセスには abfs:// を使うことをお勧めします。
abfs:// は、ADLS Gen2ストレージアカウントへのアクセスにのみ使えます。ADLS Gen2ストレージアカウントを識別する方法については、Azureドキュメントを参照してください。
次の形式でパスを指定することで、Azure Blobストレージオブジェクトを通常のファイルと同じように使えます:
// WASB unencrypted access
wasb://<your-container>@$<your-azure-account>.blob.core.windows.net/<object-path>
// WASB SSL encrypted access
wasbs://<your-container>@$<your-azure-account>.blob.core.windows.net/<object-path>
// ABFS unecrypted access
abfs://<your-container>@$<your-azure-account>.dfs.core.windows.net/<object-path>
// ABFS SSL encrypted access
abfss://<your-container>@$<your-azure-account>.dfs.core.windows.net/<object-path>
FlinkジョブでAzure Blobストレージを使う方法については、以下を参照してください:
// Read from Azure Blob storage
env.readTextFile("wasb://<your-container>@$<your-azure-account>.blob.core.windows.net/<object-path>");
// Write to Azure Blob storage
stream.writeAsText("wasb://<your-container>@$<your-azure-account>.blob.core.windows.net/<object-path>");
// Use Azure Blob Storage as checkpoint storage
env.getCheckpointConfig().setCheckpointStorage("wasb://<your-container>@$<your-azure-account>.blob.core.windows.net/<object-path>");
Shaded Hadoop Azure Blobストレージファイルシステム #
flink-azure-fs-hadoop
を使うには、Flinkを開始する前に、各JARファイルをopt
ディレクトリからFlinkのplugins
ディレクトリへコピーします。例えば、
mkdir ./plugins/azure-fs-hadoop
cp ./opt/flink-azure-fs-hadoop-1.19-SNAPSHOT.jar ./plugins/azure-fs-hadoop/
flink-azure-fs-hadoop
は、wasb://およびwasbs:// (SSL暗号化アクセス)スキーマを使ってURIのデフォルトのファイスステムラッパーを登録します。
資格情報の設定 #
WASB #
HadoopのWASB Azureファイルシステムは、Hadoop Azure Blobストレージドキュメントで説明されるように、Hadoop設定を介した視覚情報の設定をサポートします。
便宜上、Flinkはキープリフィックスfs.azure
を持つ全てのFlink設定をファイルシステムのHadoop設定に転送します。その結果、azure blobストレージキーは、flink-conf.yaml
で以下のように設定できます:
fs.azure.account.key.<account_name>.blob.core.windows.net: <azure_storage_key>
あるいは、flink-conf.yaml
で次の設定キーを設定することで、環境変数AZURE_STORAGE_KEY
からAzure Blobストレージを読み込むようにファイルシステムを設定することができます。
fs.azure.account.keyprovider.<account_name>.blob.core.windows.net: org.apache.flink.fs.azurefs.EnvironmentVariableKeyProvider
ABFS #
HadoopのABFS Azureファイルシステムは、認証を設定するいくつかの方法をサポートします。設定方法については、Hadoop ABFS documentationドキュメントをご覧ください。
Azureは、abfsを使ってADLS Gen2ストレージアカウントにアクセスするには、AzureマネージドIDを使うことをお勧めします。詳細は、Azure managed identitiesドキュメントを参照してください。
Managed Identitiesをサポートするサービスのリストについては、ページをご覧ください。それらのAzureサービスにデプロイされたFlinkクラスタは、Managed Identitiesを利用できます。
ストレージキーを使ったABFSへのアクセス(非推奨) #
Azure blobストレージキーは、flink-conf.yaml
で次のように設定できます:
fs.azure.account.key.<account_name>.dfs.core.windows.net: <azure_storage_key>