HDFS TO COSツールは、HDFSからTencent Cloud COSにデータをコピーするときに使います。|
LinuxまたはWindowsシステム。
JDK 1.7または1.8。
環境のインストールと設定の詳細については、Javaのインストールと設定をご参照ください。
注意:コマンドラインパラメータのパラメータが設定ファイルと重複している場合は、コマンドラインが優先されます。
説明:以下は、Linuxを例とした使用方法です。
./hdfs_to_cos_cmd -h
./hdfs_to_cos_cmd --hdfs_path=/tmp/hive --cos_path=/hdfs/20170224/
./hdfs_to_cos_cmd --hdfs_path=/tmp/hive --cos_path=/hdfs/20170224/ -skip_if_len_match
Hadoop上でファイルサマリーを計算するとオーバーヘッドが大きくなるため、ここでは長さのみを判断しています。
./hdfs_to_cos_cmd --decompress_har --hdfs_path=/tmp/hive --cos_path=/hdfs/20170224/
--decompress_harパラメータを指定しない場合、デフォルトで通常のHDFSディレクトリがコピーされます。すなわち、.harディレクトリ内のindexやmasterindexなどのファイルがそのままコピーされるということです。
conf : 設定ファイル。core-site.xmlとcos_info.confを保存するときに使います
log : ログディレクトリ
src : Javaソースプログラム
dep : 発行した実行可能なJARパッケージをコンパイルします
バケット(Bucket)、リージョン(Region)、APIキー情報など、入力された設定情報が正しいことを確認してください。このうちバケット名は、ユーザー定義の文字列と、システムが発行したAPPID文字列をハイフンが連結することで構成されます(例:examplebucket-1250000000)。また、マシンの時刻が北京の時刻と一致していることを確認してください(1分程度の差は正常です)。差が大きい場合は、マシンの時刻をリセットしてください。
DataNodeについては、コピープログラムが配置されているマシンも接続できることを確認してください。NameNodeには接続するパブリックネットワークIPがありますが、取得したblockが配置されているDateNodeマシンはプライベートネットワークIPであり、直接接続することはできません。したがって、NameNodeとDataNodeの両方にアクセスできるように、Hadoopのいずれかのノードで同期プログラムを実行することをお勧めします。
Hadoopコマンドを使用してファイルをダウンロードし、正常かどうかチェックしてから、同期ツールを使用してHadoopのデータサポートを同期してください。
COSにすでに存在するファイルについては、デフォルトで再送信と上書きが行われます。ユーザーが明示的に-skip_if_len_matchを指定しない限り、ファイルの長さが同じである場合、アップロードはスキップされます。
cos pathのデフォルトはディレクトリであり、最終的にHDFSからコピーされるファイルはこのディレクトリに保存されます。
Tencent Cloud EMR HDFSからCOSにデータをコピーする場合、高性能のDistcpツールを使用することをお勧めします。HadoopファイルシステムとCOS間のデータ移行をご参照ください。
この記事はお役に立ちましたか?