SmartData は、E-MapReduce(EMR)Jindo エンジンのストレージサービスです。 SmartData は、EMR コンピューティングエンジンに一元化されたストレージ、キャッシング、およびコンピューティングの最適化を提供し、ストレージ機能を拡張します。 SmartData は、JindoFS、JindoTable、および関連ツールで構成されています。 このトピックでは、SmartData 3.1.x の更新内容について説明します。
背景情報
SmartData 3.1.0 の制限事項:
- メタキャッシュスイッチをオンにして、JindoFS のキャッシュモードを有効にし、メタデータをキャッシュできます。 ただし、キャッシュモードはトレーニングシナリオでのみ有効にすることをお勧めします。 分析シナリオでキャッシュモードを使用する場合、不適切なパラメーター構成によって、現在のパスと他の OSS パスの間でデータ同期エラーが発生する可能性があります。
- JindoFS の名前空間の名前には、文字、数字、およびハイフン(-)のみを含めることができます。
- Jindo DistCp を使用してコピーする大きなファイルのサイズは、78 GB を超えることはできません。
- JindoFS のブロックストレージモードではチェックサム機能がサポートされていますが、Jindo DistCp ではこの機能はサポートされていません。
ドキュメントの更新
SmartData 3.0.0 と比較して、SmartData 3.1.0 のドキュメントには次の更新が行われています。
機能の更新
JindoFS ベースのストレージ最適化
- JindoFS は、MD5MD5CRC または COMPOSITE_CRC アルゴリズムを使用してファイルチェックサムを実行できます。 オープンソース HDFS のチェックサムインターフェースが継承されます。 MD5MD5CRC アルゴリズムを使用する場合、JindoFS はブロックサイズの入力をサポートする拡張インターフェースと、関連するシェルコマンドを提供します。 これにより、JindoFS と HDFS 間のファイル比較が容易になります。
- JindoFS は透過的なファイル圧縮をサポートしています。 ディレクトリの圧縮ポリシーを指定し、ディレクトリに新しく書き込まれたファイルのデータブロックを圧縮して OSS に格納できます。 この機能により、圧縮率の高いデータのストレージ容量と読み取り/書き込みワークロードが大幅に削減されます。
- JindoFS は、データ書き込みのフラッシュセマンティクスをサポートしています。 flush API を呼び出してファイル内のデータをフラッシュすると、データは現在の場所に保持され、読み取り可能になります。
- 次の問題が解決されました。ファイルが複数レベルのディレクトリを含む深いディレクトリに格納されている場合、スレッドが待機状態のため、
hadoop fs -ls -Rコマンドを実行できません。 hadoop fs -statコマンドが強化されました。 atime や権限など、より多くの情報が返されます。- Jindo システムの HDFS クライアントパスを変更できます。 これにより、クラスタデータを移行するときにパスを変更するために必要なワークロードが削減されます。
JindoFS ベースのキャッシング最適化
- JindoFS は、機械学習トレーニングシナリオでの多数の小さなファイルのキャッシングを最適化し、小さなファイルのキャッシング効率と読み取りパフォーマンスを向上させます。
cacheコマンドを実行して、小さなファイルのディレクトリをプリロードできます。 これにより、プリロード効率が向上します。- データキャッシングは自動的にトリガーできます。 状態を追跡するディレクトリを指定し、ディレクトリチェックの時間間隔を設定できます。 これにより、システムは指定された間隔でディレクトリをチェックし、新しいファイルが見つかった場合はデータキャッシングをトリガーします。
JindoTable ベースのコンピューティング最適化
- JindoTable Dump TF は 2 次元配列をサポートしています。
- Jindo mc dump コマンドは GZIP 圧縮形式をサポートしています。 コマンドで
-cパラメーターを使用できます。
JindoManager ベースのシステム管理
JindoManager が追加され、O&M の実行やサービス状態の監視など、Jindo システムを管理できるようになりました。 JindoManager は、各 Jindo サービスの状態を表示できる Web UI を提供します。
Jindo ツールに基づく最適化
- Jindo DistCp は、小さなファイルを処理するための Job Committer ロジックを最適化します。 これにより、OSS に送信されるリクエストの数が減り、多数の小さなファイルが存在する場合の DistCp のパフォーマンスが向上します。
- Jindo DistCp は、ファイルをバッチに分割するポリシーを最適化し、全体的なコピーパフォーマンスを向上させます。
JindoFS のエコシステムサポート
- Flink ストリーミングジョブを実行して JindoFS にデータを書き込み、データをブロックストレージまたはキャッシュモードで格納できます。 Flink ストリーミングジョブは、障害から自動的に回復できます。 Kafka などのデータ再送信をサポートするデータソースとの組み合わせに基づいて、ジョブで exactly_once セマンティクスを実装できます。
- Flink はエントロピー注入機能をサポートしています。 Flink ストリーミングジョブを実行して OSS または JindoFS にブロックストレージまたはキャッシュモードでデータを書き込む場合、エントロピー注入機能を使用して、宛先パスの特定の部分をランダムな文字列に置き換えることができます。 これにより、データ書き込み効率が向上します。
- JindoFS TensorFlow コネクタが提供され、TensorFlow Filesystem がサポートされています。 ネイティブ I/O インターフェースが使用されます。 サポートされているバージョンは、TensorFlow 1.15 以降の 1.x バージョン、および 2.3 以降の 2.x バージョンです。