SmartData コンポーネントは、EMR Jindo エンジンのストレージレイヤーです。さまざまな EMR コンピューティングエンジンに対して、統合されたストレージ、キャッシング、コンピューティング最適化、および機能拡張を提供します。SmartData コンポーネントには、JindoFS、JindoTable、および関連するツールセットが含まれます。このトピックでは、SmartData 3.1.x のアップデートについて説明します。
背景情報
SmartData 3.1.x には、以下の制限事項があります。
- キャッシュモードの JindoFS は、メタデータキャッシングをサポートしており、メタキャッシュスイッチを変更することで有効にできます。この機能はトレーニングシナリオのみを対象としています。不適切な設定により他の書き込みパスとの同期の問題が発生する可能性があるため、分析シナリオでは使用しないでください。
- JindoFS の名前空間名には、英字、数字、ハイフン (-) のみを使用できます。
- Jindo DistCp で現在サポートされている最大ファイルサイズは 78 GB です。
- ブロックモードの JindoFS はチェックサム機能をサポートしていますが、Jindo DistCp は現在この機能に対応していません。
機能変更
JindoFS ストレージの最適化
- ファイルチェックサム機能のサポート。この機能は、オープンソースの Hadoop 分散ファイルシステム (HDFS) のチェックサム関連インターフェイスに準拠しており、MD5MD5CRC と COMPOSITE_CRC の 2 つのアルゴリズムをサポートします。MD5MD5CRC アルゴリズムでは、ブロックサイズを渡すことができる拡張インターフェイスが実装されています。対応する Shell コマンドもサポートされています。これにより、HDFS ファイルとのファイル比較をより適切にサポートします。
- 透過的なファイル圧縮機能を使用すると、ディレクトリに圧縮ポリシーを設定できます。ディレクトリに書き込まれる新しいファイルブロックは、OSS バックエンドに保存される前に圧縮されます。圧縮率が高いデータの場合、ストレージ容量を大幅に節約し、読み書きされるデータ量を削減できます。
- ファイル書き込みのフラッシュセマンティクスのサポート。フラッシュインターフェイスが呼び出されると、データは現在の位置まで永続化され、ファイルが読み取り可能になります。
- 階層が深く、多数のサブディレクトリを持つディレクトリで
hadoop fs -ls -Rコマンドを実行すると失敗する問題を修正しました。この問題は、スレッドが待機状態に入ることが原因でした。 hadoop fs -statコマンドを強化し、atime や権限などの情報を表示できるようになりました。- Jindo HDFS クライアントにパスの書き換え機能を追加し、クラスター移行時のパス変更の作業負荷を軽減しました。
詳細については、「Jindo HDFS クライアントパスを書き換える」をご参照ください。
JindoFS キャッシュの最適化
- 機械学習トレーニングシナリオ向けに、スモールファイルキャッシュの最適化機能が提供されています。これにより、多数のスモールファイルのキャッシュ効率と読み取りパフォーマンスが大幅に向上します。
- スモールファイルディレクトリをプリロードするための
cacheコマンドが提供されており、プリロード効率が大幅に向上します。 - データキャッシングの自動トリガーのサポート。追跡対象のディレクトリと時間間隔を設定できます。設定された間隔ごとに、システムはディレクトリ内の新しいファイルを自動的に検出し、キャッシュ操作をトリガーします。
JindoTable コンピューティングの最適化
- TF 形式の JindoTable Dump が 2 次元配列をサポートするようになりました。
- Jindo mc dump が
-cパラメータによる Gzip 圧縮をサポートするようになりました。
JindoManager システム管理
JindoManager サービスは、Jindo システムの運用管理、ステータス監視、およびその他の機能を一元化する新しい機能です。Web UI を提供し、さまざまな Jindo システムコンポーネントのステータスを表示できます。
JindoTools ツールセット
- Jindo DistCp ツールで、スモールファイルを扱う際の Job Committer ロジックを最適化しました。これにより、OSS へのリクエスト数が大幅に削減され、多数のスモールファイルを処理する際の DistCp のパフォーマンスが向上します。
- Jindo DistCp ツールのファイルバッチ処理を最適化し、より効果的なバッチ処理ポリシーを実装することで、全体的なパフォーマンスが向上しました。
JindoFS エコシステムサポート
- Flink ストリーミングジョブが、回復性を備えた状態で JindoFS に書き込めるようになりました。ブロックモードとキャッシュモードの両方がサポートされています。Kafka などの再生可能なデータソースと組み合わせることで、Exactly-Once セマンティクスを実現できます。
- Flink がエントロピーインジェクション機能を実装しました。ストリーミングジョブがブロックモードまたはキャッシュモードで OSS または JindoFS にデータを書き込む際、書き込みパスにエントロピーインジェクションを使用できます。この機能により、パスの特定の部分をランダムな文字列に置き換えて、書き込み効率を向上させることができます。
- JindoFS Tensorflow コネクタのサポート。Tensorflow ファイルシステムを実装することで、このコネクタはネイティブの Tensorflow I/O インターフェイスをサポートします。Tensorflow 1.15 以降、および Tensorflow 2.3 以降をサポートします。