Jindo DistCp is fully open for use
Alibaba Cloud JindoFS SDK の正式リリースに伴い、JindoFS SDK をベースとした Alibaba Cloud のデータ移行ツール「Jindo DistCp」が、すべてのユーザーに正式に公開されました。Jindo DistCp は、Alibaba Cloud E-MapReduce チームによって開発された分散ファイルコピーツールであり、大規模クラスター内およびクラスター間でのファイルコピーをサポートします。MapReduce を利用してファイルの分散、エラー処理、リカバリを実現し、ファイルとディレクトリのリストを MapReduce タスクの入力として受け取ります。各タスクはコピー元リストの一部のファイルのコピーを処理します。現在、hdfs から oss、hdfs から hdfs、oss から hdfs、oss から oss へのデータコピーシナリオを完全にサポートし、複数のパーソナライズされたコピーパラメーターと複数のコピー戦略を提供しています。特に hdfs から oss へのデータコピーに重点を置いており、カスタマイズされた CopyCommitter を通じて No-Rename コピーを実現し、データコピーの整合性を確保しています。本機能は S3 DistCp および HDFS DistCp と完全に同等の機能を備え、HDFS DistCp と比較してパフォーマンスが大幅に向上しています。効率的で安定した、安全なデータコピーツールの提供を目指しています。本記事では、Jindo DistCp を使用した基本的なファイルコピーの方法と、さまざまなシナリオにおけるデータコピーパフォーマンスの改善方法について紹介します。なお、以前は Jindo DistCp が E-MapReduce 製品内部でのみ利用可能でしたが、今回のリリースにより、すべての Alibaba Cloud OSS/HDFS ユーザーに全面的に公開され、公式なメンテナンスとテクニカルサポートが提供されるようになりました。ぜひご活用ください。
ビッグデータとデータ移行ツール
従来のビッグデータ分野では、HDFS を基盤ストレージとして使用し、大規模データを HDFS に格納することが一般的です。データ移行およびデータコピーのシナリオでは、Hadoop に付属する DistCp ツールが最もよく使用されています。しかし、OSS などのオブジェクトストレージシステムの特性を十分に活用できておらず、効率が低く、最終的に整合性を確保できません。提供される機能オプションも比較的シンプルで、ユーザーのニーズを満たすことができません。このような状況において、効率的で機能豊富なデータ移行ツールが、ソフトウェアスタックの移行やビジネスのクラウド化を成功させる重要な要素となります。
Hadoop DistCp
Hadoop DistCp は、Hadoop に統合された分散データ移行ツールです。基本的なファイルコピー、上書きコピー、マップ並列度の指定、ログ出力パスなどの機能を提供します。Hadoop 2.x では、コピー戦略の選択など、部分的な最適化が行われています。デフォルトでは uniformize が使用され(各マップタスクがファイルサイズを均等にバランシングします)、dynamic を指定すると DynamicInputFormat が使用されます。これらの機能は通常の hdfs 間のデータコピーを最適化しますが、OSS などのオブジェクトストレージシステム向けのデータ書き込みの最適化が不足しています。
S3 DistCp
S3 DistCp は、AWS が S3 向けに提供する distcp ツールです。S3DistCp は Hadoop DistCp の拡張版であり、S3 との連携に最適化され、いくつかの実用的な機能が追加されています。新機能には、ファイルの増分コピー、コピー時の圧縮方式の指定、モードに基づくデータ集約、およびファイルリストに基づいたコピーが含まれます。S3 DistCp は S3 オブジェクトストレージシステムに依存しており、現在は AWS EMR 内部でのみ使用可能で、一般ユーザーには公開されていません。
Jindo DistCp
Jindo DistCp は、シンプルで使いやすい分散ファイルコピーツールです。現在は主に E-MapReduce クラスターで使用され、主に hdfs から OSS へのデータ移行サービスを提供します。Hadoop DistCp および S3 DistCp と比較して、Jindo DistCp は多くの最適化を行い、多数の個性化された機能を追加しています。さらに、OSS オブジェクトストレージの特性と深く連携し、カスタマイズされた CopyCommitter を実装して No-Rename コピーを実現し、クラウドでのデータ移行にかかる時間を大幅に短縮しています。現在、Jindo DistCp は正式に一般公開されており、この機能を使用してクラウドでデータを移行し、OSS データ移行ツールを利用できます。
なぜ Jindo DistCp を使用するのか
1. 高い効率性。テストシナリオで最大 1.59 倍の高速化を達成。
2. 豊富な基本機能を備え、複数のコピー方式とシーン別最適化戦略を提供。
3. OSS との連携により、ファイルの直接アーカイブ、低頻度アクセスストレージへの保存、圧縮などの操作をサポート。
4. No-Rename コピーを実装し、データ整合性を確保。
5. 包括的なシナリオに対応し、Hadoop DistCp を完全に置換可能。複数の Hadoop バージョンをサポート(ご不明な点がございましたら issue をご提出ください)。
Jindo DistCp の互換性
Jindo DistCp は現在、Hadoop 2.7+ と最新の Hadoop 3.x をサポートしており、2 種類の異なる jar パッケージでサービスを提供します。Hadoop 環境に依存しますが、Hadoop DistCp とは競合しません。Alibaba Cloud EMR 内部では、Jindo DistCp の機能を直接使用でき、ユーザーは jar パッケージをダウンロードする必要はありません。外部で使用する場合は、jar パッケージをダウンロードした後、OSS の AccessKey をパラメータまたは Hadoop 設定ファイルで指定することで利用できます。
Jindo DistCp のパフォーマンス向上
Jindo DistCp と Hadoop DistCp のパフォーマンス比較を行いました。今回のテストでは、hdfs から oss へのコピーを主なシナリオとし、Hadoop が提供するテストデータセット TestDFSIO を使用して、10 MB のファイル 1,000 個、500 MB のファイル 1,000 個、1 GB のファイル 1,000 個をそれぞれ生成し、hdfs から oss へのデータコピープロセスのテストを実施します。
テスト結果の分析から、Jindo DistCp は Hadoop DistCp と比較して大幅なパフォーマンス向上を実現しており、テストシナリオでの最大高速化効果は 1.59 倍に達することが確認できます。
ツールキットの使用方法
1. jar パッケージのダウンロード
GitHub リポジトリから最新の jar パッケージ jindo-distcp-x.x.jar をダウンロードしてください。
注意:基盤となる SDK がネイティブコードを使用しているため、現時点でこの jar パッケージは Linux および MacOS オペレーティングシステムのみをサポートしています。
2. OSS アクセス AK の設定
プログラムの実行時に、--key、--secret、--endPoint パラメータオプションを指定することで、AK をコマンドに設定できます。
コマンド例は以下の通りです:
hadoop jar jindo-distcp-2.7.3.jar --src /data/incoming/hourly_ table --dest oss://yang-hhht/hourly_table --key yourkey --secret yoursecret --endPoint oss-cn-hangzhou.aliyuncs.com
また、Hadoop の core-site.xml ファイルに OSS の AK、シークレット、エンドポイントを事前に設定しておくことで、毎回 AccessKey を入力する手間を省くことができます。
fs.jfs.cache.oss-accessKeyId
xxx
fs.jfs.cache.oss-accessKeySecret
xxx
fs.jfs.cache.oss-endpoint
oss-cn-xxx.aliyuncs.com
さらに、AccessKey を平文で保存しないよう、パスワードレス機能を有効化してセキュリティを強化することをお勧めします。
ビッグデータとデータ移行ツール
従来のビッグデータ分野では、HDFS を基盤ストレージとして使用し、大規模データを HDFS に格納することが一般的です。データ移行およびデータコピーのシナリオでは、Hadoop に付属する DistCp ツールが最もよく使用されています。しかし、OSS などのオブジェクトストレージシステムの特性を十分に活用できておらず、効率が低く、最終的に整合性を確保できません。提供される機能オプションも比較的シンプルで、ユーザーのニーズを満たすことができません。このような状況において、効率的で機能豊富なデータ移行ツールが、ソフトウェアスタックの移行やビジネスのクラウド化を成功させる重要な要素となります。
Hadoop DistCp
Hadoop DistCp は、Hadoop に統合された分散データ移行ツールです。基本的なファイルコピー、上書きコピー、マップ並列度の指定、ログ出力パスなどの機能を提供します。Hadoop 2.x では、コピー戦略の選択など、部分的な最適化が行われています。デフォルトでは uniformize が使用され(各マップタスクがファイルサイズを均等にバランシングします)、dynamic を指定すると DynamicInputFormat が使用されます。これらの機能は通常の hdfs 間のデータコピーを最適化しますが、OSS などのオブジェクトストレージシステム向けのデータ書き込みの最適化が不足しています。
S3 DistCp
S3 DistCp は、AWS が S3 向けに提供する distcp ツールです。S3DistCp は Hadoop DistCp の拡張版であり、S3 との連携に最適化され、いくつかの実用的な機能が追加されています。新機能には、ファイルの増分コピー、コピー時の圧縮方式の指定、モードに基づくデータ集約、およびファイルリストに基づいたコピーが含まれます。S3 DistCp は S3 オブジェクトストレージシステムに依存しており、現在は AWS EMR 内部でのみ使用可能で、一般ユーザーには公開されていません。
Jindo DistCp
Jindo DistCp は、シンプルで使いやすい分散ファイルコピーツールです。現在は主に E-MapReduce クラスターで使用され、主に hdfs から OSS へのデータ移行サービスを提供します。Hadoop DistCp および S3 DistCp と比較して、Jindo DistCp は多くの最適化を行い、多数の個性化された機能を追加しています。さらに、OSS オブジェクトストレージの特性と深く連携し、カスタマイズされた CopyCommitter を実装して No-Rename コピーを実現し、クラウドでのデータ移行にかかる時間を大幅に短縮しています。現在、Jindo DistCp は正式に一般公開されており、この機能を使用してクラウドでデータを移行し、OSS データ移行ツールを利用できます。
なぜ Jindo DistCp を使用するのか
1. 高い効率性。テストシナリオで最大 1.59 倍の高速化を達成。
2. 豊富な基本機能を備え、複数のコピー方式とシーン別最適化戦略を提供。
3. OSS との連携により、ファイルの直接アーカイブ、低頻度アクセスストレージへの保存、圧縮などの操作をサポート。
4. No-Rename コピーを実装し、データ整合性を確保。
5. 包括的なシナリオに対応し、Hadoop DistCp を完全に置換可能。複数の Hadoop バージョンをサポート(ご不明な点がございましたら issue をご提出ください)。
Jindo DistCp の互換性
Jindo DistCp は現在、Hadoop 2.7+ と最新の Hadoop 3.x をサポートしており、2 種類の異なる jar パッケージでサービスを提供します。Hadoop 環境に依存しますが、Hadoop DistCp とは競合しません。Alibaba Cloud EMR 内部では、Jindo DistCp の機能を直接使用でき、ユーザーは jar パッケージをダウンロードする必要はありません。外部で使用する場合は、jar パッケージをダウンロードした後、OSS の AccessKey をパラメータまたは Hadoop 設定ファイルで指定することで利用できます。
Jindo DistCp のパフォーマンス向上
Jindo DistCp と Hadoop DistCp のパフォーマンス比較を行いました。今回のテストでは、hdfs から oss へのコピーを主なシナリオとし、Hadoop が提供するテストデータセット TestDFSIO を使用して、10 MB のファイル 1,000 個、500 MB のファイル 1,000 個、1 GB のファイル 1,000 個をそれぞれ生成し、hdfs から oss へのデータコピープロセスのテストを実施します。
テスト結果の分析から、Jindo DistCp は Hadoop DistCp と比較して大幅なパフォーマンス向上を実現しており、テストシナリオでの最大高速化効果は 1.59 倍に達することが確認できます。
ツールキットの使用方法
1. jar パッケージのダウンロード
GitHub リポジトリから最新の jar パッケージ jindo-distcp-x.x.jar をダウンロードしてください。
注意:基盤となる SDK がネイティブコードを使用しているため、現時点でこの jar パッケージは Linux および MacOS オペレーティングシステムのみをサポートしています。
2. OSS アクセス AK の設定
プログラムの実行時に、--key、--secret、--endPoint パラメータオプションを指定することで、AK をコマンドに設定できます。
コマンド例は以下の通りです:
hadoop jar jindo-distcp-2.7.3.jar --src /data/incoming/hourly_ table --dest oss://yang-hhht/hourly_table --key yourkey --secret yoursecret --endPoint oss-cn-hangzhou.aliyuncs.com
また、Hadoop の core-site.xml ファイルに OSS の AK、シークレット、エンドポイントを事前に設定しておくことで、毎回 AccessKey を入力する手間を省くことができます。
さらに、AccessKey を平文で保存しないよう、パスワードレス機能を有効化してセキュリティを強化することをお勧めします。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
