tencent cloud

Cloud Object Storage

最新情報とお知らせ
製品アップデート情報
製品のお知らせ
製品概要
製品概要
機能概要
応用シナリオ
製品の優位性
基本概念
リージョンとアクセスドメイン名
仕様と制限
製品の課金
課金概要
課金方式
課金項目
無料利用枠
記帳例
請求書の確認とダウンロード
お支払い遅れについて
よくある質問
クイックスタート
コンソールクイックスタート
COSBrowserクイックスタート
ユーザーガイド
リクエストの作成
バケット
オブジェクト
データ管理
バッチ処理
グローバルアクセラレーション
監視とアラーム
運用管理センター
データ処理
インテリジェントツールボックス使用ガイド
データワークフロー
アプリ統合
ツールガイド
ツール概要
環境のインストールと設定
COSBrowserツール
COSCLIツール
COSCMDツール
COS Migrationツール
FTP Serverツール
Hadoopツール
COSDistCpツール
HDFS TO COSツール
オンラインツール (Onrain Tsūru)
セルフ診断ツール
実践チュートリアル
概要
アクセス制御と権限管理
パフォーマンスの最適化
AWS S3 SDKを使用したCOSアクセス
データディザスタリカバリバックアップ
ドメイン名管理の実践
画像処理の実践
COSオーディオビデオプレーヤーの実践
データセキュリティ
データ検証
COSコスト最適化ソリューション
サードパーティアプリケーションでのCOSの使用
移行ガイド
サードパーティクラウドストレージのデータをCOSへ移行
データレークストレージ
クラウドネイティブデータレイク
メタデータアクセラレーション
データアクセラレーター GooseFS
データ処理
データ処理概要
画像処理
メディア処理
コンテンツ審査
ファイル処理
ドキュメントプレビュー
トラブルシューティング
RequestId取得の操作ガイド
パブリックネットワーク経由でのCOSへのファイルアップロード速度の遅さ
COSへのアクセス時に403エラーコードが返される
リソースアクセス異常
POST Objectの一般的な異常
セキュリティとコンプライアンス
データ災害復帰
データセキュリティ
クラウドアクセスマネジメント
よくある質問
よくあるご質問
一般的な問題
従量課金に関するご質問
ドメインコンプライアンスに関するご質問
バケット設定に関する質問
ドメイン名とCDNに関するご質問
ファイル操作に関するご質問
権限管理に関するご質問
データ処理に関するご質問
データセキュリティに関するご質問
署名付きURLに関するご質問
SDKクラスに関するご質問
ツール類に関するご質問
APIクラスに関するご質問
Agreements
Service Level Agreement
プライバシーポリシー
データ処理とセキュリティ契約
連絡先
用語集
ドキュメントCloud Object Storageデータレークストレージメタデータアクセラレーションデータ移行及び同期メタデータアクセラレーション機能を有効にしたバケットへのHDFSデータの移行

メタデータアクセラレーション機能を有効にしたバケットへのHDFSデータの移行

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-06-30 12:13:52

概要

メタデータアクセラレーターはTencent Cloud COS(Cloud Object Storage)サービス向けにハイパフォーマンスなファイルシステム機能をご提供します。メタデータアクセラレーターの基盤にはCloud HDFSの優れたメタデータ管理機能を採用し、ユーザーがファイルシステムのセマンティクスによってCOSサービスにアクセスできるようサポートします。システム設計指標は100GBレベルの帯域幅、10万レベルのQPSおよびミリ秒レベルの遅延を実現可能です。バケットでメタデータアクセラレーターを有効にすることで、ビッグデータ、ハイパフォーマンスコンピューティング、機械学習、AIなどのシーンに幅広く応用できます。メタデータアクセラレーターの詳細な説明に関しては、メタデータアクセラレーターをご参照ください。
COSはメタデータアクセラレーションサービスによってHadoopファイルシステムのセマンティクスを提供しているため、Hadoop Distcpツールを利用すると、Cloud Object Storage(COS)と他のHadoopファイルシステム間の双方向データマイグレーションを便利に行うことができます。ここではHadoop DistcpツールによってローカルHDFS内のファイルをCOSのメタデータアクセラレーションバケットに移す方法について重点的にご説明します。

移行環境の準備

マイグレーションツールの準備

1. 下の表にあるjarパッケージツールをダウンロードし、マイグレーションクラスターの送信先マシンのローカルディレクトリ下に配置します(例:/data01/jars)。
Tencent Cloud EMR環境
インストール説明
jarパッケージファイル名
説明
ダウンロードアドレス
cos-distcp-1.12-3.1.0.jar
COSDistCp関連パッケージです。データをCOSNにコピーします
COSDistCpツールをご参照ください
chdfs_hadoop_plugin_network-2.8.jar
OFSプラグイン

自作Hadoop/CDHなどの環境
ソフトウェア依存
Hadoop-2.6.0およびそれ以上のバージョン、Hadoop-COSプラグイン8.1.5およびそれ以上のバージョンとし、またcos_api-bundleプラグインのバージョンはHadoop-COSバージョンに対応するものとします。詳細については、COSN github releases でご確認ください。
インストール説明
Hadoop環境下で、次のプラグインをインストールします。
jarパッケージファイル名
説明
ダウンロードアドレス
cos-distcp-1.12-3.1.0.jar
COSDistCp関連パッケージです。データをCOSNにコピーします
COSDistCpツールをご参照ください
chdfs_hadoop_plugin_network-2.8.jar
OFSプラグイン
Hadoop-COS
Version >= 8.1.5
Hadoop-COSツールをご参照ください
cos_api-bundle
バージョンはHadoop-COSに対応している必要があります

注意:
Hadoop-cosは、バージョン8.1.5以降、cosn://bucketname-appid/メソッドによるメタデータアクセラレーションバケットへのアクセスをサポートしています。
メタデータアクセラレーション機能は、バケット作成時にのみオンにすることができ、一度オンにするとオフにすることはできません。お客様のビジネスシーンに応じて、オンにするかどうか慎重にご検討ください。また、旧バージョンのHadoop-cosパッケージは、メタデータアクセラレーション機能がオンになっているバケットには正常にアクセスできませんのでご注意ください。
2. メタデータアクセラレーションバケットを作成し、メタデータアクセラレーションバケットのHDFSプロトコルを設定します。詳細な手順については、メタデータアクセラレーターを有効にしたバケットへのHDFSプロトコルを使用したアクセスの、「バケットの作成とHDFSプロトコルの設定」の章をご参照ください。
3. マイグレーションクラスターcore-site.xmlを変更し、変更完了後にすべてのノード上に送信して設定します。データの移行のみの場合は、ビッグデータコンポーネントの再起動は必要ありません。
key
value
設定ファイル
説明
fs.cosn.trsf.fs.ofs.impl
com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter
core-site.xml
COSN実装クラス。入力必須です
fs.cosn.trsf.fs.AbstractFileSystem.ofs.impl
com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter
core-site.xml
COSN実装クラス。入力必須です
fs.cosn.trsf.fs.ofs.tmp.cache.dir
形式は/data/emr/hdfs/tmp/のようになります
core-site.xml
一時ディレクトリ。入力必須です。MRSの各ノードにはすべて作成し、十分なスペースと権限を保証する必要があります
fs.cosn.trsf.fs.ofs.user.appid
お客様のCOS bucketに対応するappid
core-site.xml
入力必須
fs.cosn.trsf.fs.ofs.ranger.enable.flag
false
core-site.xml
入力必須、falseかどうか確認
fs.cosn.trsf.fs.ofs.bucket.region
bucketに対応するregion
core-site.xml
入力必須です。オプション値:eu-frankfurt(フランクフルト)、ap-chengdu(成都)、ap-singapore(シンガポール)
4. マイグレーションクラスターがプライベートネットワークを経由してメタデータアクセラレーションバケットにアクセス可能かどうかを検証します。詳細な手順については、メタデータアクセラレーターを有効にしたバケットへのHDFSプロトコルを使用したアクセスの、「コンピューティングクラスターを設定してCOSにアクセス」の章をご参照ください。マイグレーションクラスターを送信して、COSに正常にアクセスできるかどうかを検証します。

既存データの移行

1. 移行ディレクトリの決定

通常、データ移行はまずHDFSストレージデータの移行から開始します。ソースHDFSクラスターの移行対象のディレクトリを選定し、ターゲット側とソース側のパスは同一にします。以下に示します。
HDFSパスhdfs:///data/user/targetcosn://{bucketname-appid}/data/user/targetに移行したいと仮定します。
移行の過程で、ソース側ディレクトリのファイルが変更されないようにするため、HDFSのスナップショット機能を使用し、先に移行対象のディレクトリのスナップショットを作成します。現在の日付をスナップショットのファイル名とします。
hdfs dfsadmin -disallowSnapshot hdfs:///data/user/
hdfs dfsadmin -allowSnapshot hdfs:///data/user/target
hdfs dfs -deleteSnapshot hdfs:///data/user/target {現在の日付}
hdfs dfs -createSnapshot hdfs:///data/user/target {現在の日付}
成功の例:


スナップショットを使用したくない場合は、ソース側のtargetファイルを直接移行することができます。

2. COSDistCpを使用して移行

COSDistCpタスクを起動し、ファイルをソースHDFSからターゲットCOSバケットにコピーします。
COSDistCpはMapReduceタスクであり、MapReduceタスクのプリントログにはMRタスクの実行が成功したかどうかが表示されます。失敗した場合はYARNページを確認し、ログまたはエラー情報をCOSに提供してトラブルシューティングを行うことができます。COSDistCpツールによる移行タスクの実行は次のいくつかの手順に分かれています。 (1)一時ディレクトリの作成 (2)COSDistCpタスクの実行 (3)失敗したファイルの再移行

(1)一時ディレクトリの作成

hadoop fs -libjars /data01/jars/chdfs_hadoop_plugin_network-2.8.jar -mkdir cosn://bucket-appid/distcp-tmp

(2)COSDistCpタスクの実行

nohup hadoop jar /data01/jars/cos-distcp-1.10-2.8.5.jar -libjars /data01/jars/chdfs_hadoop_plugin_network-2.8.jar --src=hdfs:///data/user/target/.snapshot/{現在の日付} --dest=cosn://{bucket-appid}/data/user/target --temp=cosn://bucket-appid/distcp-tmp/ --preserveStatus=ugpt --skipMode=length-checksum --checkMode=length-checksum --cosChecksumType=CRC32C --taskNumber 6 --workerNumber 32 --bandWidth 200 >> ./distcp.log &
パラメータの説明は次のとおりです。実際の状況に応じて調整できます。
--taskNumber=VALUE コピープロセス数を指定します。例:--taskNumber=10。
--workerNumber=VALUE コピースレッド数を指定します。COSDistCpは、各コピープロセスでこのパラメータサイズのコピースレッドプールを作成します。例:--workerNumber=4。
--bandWidth 移行する各ファイルの読み込み帯域幅を制限します。単位はMB/s、デフォルトは-1で、読み込み帯域幅は制限しません。例:--bandWidth=10。
--cosChecksumType=CRC32C、デフォルトではCRC32Cを使用しますが、HDFSクラスターはCOMPOSITE_CRC32チェックをサポートする必要があり、Hadoop バージョン3.1.1+に依存します。HDFSのバージョンが3.1.1より低い場合は、このパラメータを--cosChecksumType=CRC64に変更する必要があります。
注意:
COSDistCpでは移行の総帯域幅制限計算式は、taskNumber x workerNumber x bandWidthとなります。workerNumberを1に設定し、パラメータtaskNumberによる移行の同時実行数の制御、およびパラメータbandWidthによる単一の同時実行帯域幅の制御を行うことができます。
コピータスクの終了時に、タスクログによってファイルのコピーに関する統計情報が出力されます。関連するカウンターは次のとおりです。 このうち、FILES_FAILEDは失敗の数を表します。FILES_FAILEDの統計項目がない場合は、すべての移行が成功したことになります。
CosDistCp Counters
BYTES_EXPECTED=10198247
BYTES_SKIPPED=10196880
FILES_COPIED=1
FILES_EXPECTED=7
FILES_FAILED=1
FILES_SKIPPED=5

具体的な出力結果統計項目の説明は次のとおりです。
統計項目
説明
BYTES_EXPECTED
ソースディレクトリの統計に基づいてコピーが必要なファイルの合計サイズ。単位:バイト
FILES_EXPECTED
ディレクトリファイルを含む、ソースディレクトリの統計に基づいてコピーが必要なファイル数
BYTES_SKIPPED
長さまたはチェックサム値が等しく、コピーされないファイルサイズの合計。単位:バイト
FILES_SKIPPED
長さまたはチェックサム値が等しく、コピーされないソースファイル数
FILES_COPIED
コピーに成功したソースファイル数
FILES_FAILED
コピーに失敗したソースファイル数
FOLDERS_COPIED
コピーに成功したディレクトリ数
FOLDERS_SKIPPED
スキップしたディレクトリ数

(3)失敗したファイルの再移行

COSDistCpツールはファイルの移行効率の問題の大部分を解決することができるほか、--deleteパラメータによってHDFSとCOSのデータを完全に一致させることもできます。
--deleteパラメータを使用する場合は、--deleteOutput=/xxx(カスタム)パラメータを含める必要があります。ただし--diffModeパラメータを含めることはできません。
nohup hadoop jar /data01/jars/cos-distcp-1.10-2.8.5.jar -libjars /data01/jars/chdfs_hadoop_plugin_network-2.8.jar --src=--src=hdfs:///data/user/target/.snapshot/{現在の日付} --dest=cosn://{bucket-appid}/data/user/target --temp=cosn://bucket-appid/distcp-tmp/ --preserveStatus=ugpt --skipMode=length-checksum --checkMode=length-checksum --cosChecksumType=CRC32C --taskNumber 6 --workerNumber 32 --bandWidth 200 --delete --deleteOutput=/dele-xx >> ./distcp.log &
実行完了後、HDFSとCOSの差分データはtrashディレクトリに移動し、/xxx/failedディレクトリ下に移動ファイルリストが生成されます。trashディレクトリ下のデータの削除にはhadoop fs -rm URLまたはhadoop fs -rmr URLを用いることができます。

増分の移行

各回の移行が完了した後に、更新された増分データが存在し、その移行も必要な場合は、データの移行がすべて完了するまで、全量移行の手順を繰り返し実行します。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック