機械翻訳について

ビッグ・データ・ファイル・システム(BDFS)について

Oracle Cloud InfrastructureOracle Cloud Infrastructureではサポートされていません。

Oracle Big Data Cloudには、複数のロケーションに格納されたデータへのアクセスを高速化するメモリー内ファイルシステムであるOracle Big Dataファイルシステム(BDFS)が含まれています。

BDFSはHadoopファイルシステムと互換性があり、Hive、MapReduce、Sparkなどの計算技術で使用できます。 BDFS(現在Alluxioベース)は、データ・パイプラインのデータ・アクセスを高速化するように設計されており、Sparkアプリケーションのランタイム・パフォーマンスを大幅に向上させるいくつかの機能を備えています。 BDFSの焦点は、アクティブなキャッシュ層を提供することによって、Oracle Cloud Infrastructure Object Storage Classicとの間のデータ・アクセスを高速化することです。

注意:

BDFSは、フル・デプロイメント・プロファイルのみで使用でき、基本プロファイルでは使用できません。

BDFSの使用

BDFSの使用は、特別な統合を必要としません。 データにアクセスするメカニズムには、アプリケーションが使用するURIを変更して基礎となるデータにアクセスする必要があります。 通常、swift:// URLを使用してOracle Cloud Infrastructure Object Storage Classicを利用してファイルにアクセスします。 Oracle Cloud Infrastructure Object Storage Classicは、一時的なデータと持続的なデータの読み取りと書き込みの両方に使用できます。 時間データの場合、BDFSを使用すると、Big Data Cloudクラスタの外部にデータを転送する必要がないため、パフォーマンスが大幅に向上します。 また、BDFSを使用してOracle Cloud Infrastructure Object Storage Classicに格納されたデータを読み取ることができます。これにより、その後の読み取りでBDFSにデータがキャッシュされ、パフォーマンスが向上します。

BDFSトポロジ

BDFSアーキテクチャは、マスター・プロセスとスレーブ・プロセスで構成されています。 BDFSマスター・プロセスは一般的な調整と簿記を担当し、スレーブ・プロセスはデータの実際のキャッシュを担当します。 Alluxioがデフォルトで利用できるメモリー量は、クラスタ内のAlluxioワーカー・ノードごとに1 GBです。

すぐに使用できる構成は、Apache Ambariを使用してalluxio-env(「Ambari Advanced」タブ)のalluxio.worker.memory構成を変更することで変更できます。 変更を有効にするには、すべてのワーカーを再起動する必要があります。

高可用性

BDFSは、少なくとも3つのノードの初期サイズを持つクラスタで高い可用性を発揮します。 複数のマスター・コンポーネントがデプロイされ、1つがリーダーに選出され、その他のコンポーネントはスタンバイ・モードになります。 リーダーが落ちると、スタンバイ・マスターの1人がリーダーに昇格します。 リーダー選挙はApache Zookeeperによって管理されます。

オフ・ヒープ・ストレージ(キャッシュ)

BDFSの標準的な使用事例は、Sparkアプリケーションを含むさまざまなアプリケーション間でメモリー内データを共有することです。 この目的のためにBDFSを活用する利点は、Sparkプロセスのメモリー使用量を削減し、下流のSparkアプリケーションのデータ・アクセスを高速化することです。 Sparkアプリケーションでは、RDDのcache()またはpersist() APIを使用してデータを格納するのが一般的です。 これにより、RDDをSparkエグゼキュータに格納することができます。これにより、データがメモリーに保持されるため、データを効率的にフェッチすることができます。 この手法の欠点は、エグゼキュータで消費されるメモリーの量によっては、実行に成功するために十分なメモリーが残っていない可能性があることです。 別の方法として、BDFSを利用してRDDオフ・ヒープを格納する方法があります。 これにより、データのキャッシングをBDFSにオフロードしながら、処理のために重要なエグゼキュータ・メモリーが解放されます。

RDDを保存するために使用されるSpark APIは、BDFSで使用できます。 次の例があります。

  • rdd.saveAsTextFile(BDFS_FILE_URI) - RDDをテキスト・ファイルとして保存するのに適しています。RDD内の各要素は別々の行として記述されます

  • rdd.saveAsObjectFile(BDFS_FILE_URI) - Javaの直列化とデシリアライズを使用してファイルとしてRDDを格納するのに適しています。

  • rdd.saveAsSequenceFile(BDFS_FILE_URI ) - キーと値のペアをHadoop SequenceFileとして保存するのに適しています

上記の例のBDFS_FILE_URIは: bdfs://localhost:19998/bdcsce/myrdd.txt

RDDがBDFSに保存されると、ジョブ・パイプライン内の他のSparkアプリケーションからRDDにアクセスできます。

Oracle Cloud Infrastructure Object Storage Classic読み取りアクセス

BDFSは、Oracle Cloud Infrastructure Object Storage Classicを読み取り専用のファイルシステムとしてマウントします。これにより、Oracle Cloud Infrastructure Object Storage Classicから直接読み取ることができます。 これにより、Oracle Cloud Infrastructure Object Storage ClassicにあるファイルにBDFSでアクセスすることができます。 BDFSを介してファイルにアクセスする利点は、ファイルがBDFSにキャッシュされることです。 そのため、同じファイルの後続の読み取りは、基礎となるデータをOracle Cloud Infrastructure Object Storage Classicから2回目に取得する必要がないため、よりパフォーマンスが向上します。 代わりに、ファイルはBDFSから直接読み取られます。

以下は、同じファイルのSwiftおよびBDFS URLの例です。 この例では、Oracle Cloud Infrastructure Object Storage Classic内のbdcsceコンテナにBDFSがマウントされているものとします。

  • Swift URL : swift://bdcsce.default/somepath/file.txt

  • BDFS URL : bdfs://localhost:19998/somepath/file.txt

BDFS URLのホストとポートは必須ですが、クラスタがHA環境用に構成されているため使用されません。 ホストとポートを提供する要件は、将来のリリースではなくなる可能性があります。

BDFS階層型ストレージ

BDFS Tiered Storageは、メモリーに保持できる以上のオブジェクトをキャッシング・レイヤーに格納する機能を提供します。 これは後で検索のためにブロック・ストレージのメモリーに保持されるオブジェクトを追い出すことによって達成されます。 メモリーが使い尽くされると、BDFSは自動的にオブジェクトをメモリーからブロック・ストレージに移動します。 この機能を使用すると、BDFSクラスタ全体で使用可能なメモリー・キャッシュ全体の容量を超えたオブジェクトのキャッシュが可能になります(作業者のコレクション)。 BDFSはメモリーを犠牲にして消費するので、BDFSを使用しない場合、BDFSによってほとんどオーバーヘッドが発生しません。

クラスタの作成時にBDFSキャッシュ・ブロック・ストレージのサイズを指定できます。 BDFSによって提供されるキャッシュの総量は、BDFSに割り当てられたRAMとスピルオーバーに割り当てられたブロック・ストレージの合計です。 BDFSに割り当てられるメモリーの量は、クラスタの作成時に選択されたコンピュート・シェイプに基づいています。 次の表は、BDFSに割り当てられるメモリーの量をまとめたものです。

Compute Shape 利用可能な総メモリー BDFSに割り当てられた合計メモリー
OC2m 30 GB 1 GB
他のすべてのシェイプ   利用可能なメモリーの16%