0

Hadoop でファイルをコピーするときに所有権/権限を保持する方法はありますか? 試してみhadoop fs -cp -p <src> <dest>ました。うまくいきませんでした。

4

3 に答える 3

3

はい、もちろんできます。ただし、 distcpを使用することをお勧めします。これは、クラスター間または同じクラスター上でデータをコピーするための高度なツールであり、実行を最適化するための多くのオプションがあります。このコマンドは mapreduce を実行するため、長いコピーの場合は時間がかからず、すべての属性を保持できます。

例:

hadoop distcp /source_dir/data \
              /target_dir/data

hadoop distcp /source_dir/dataA \
              /source_dir/dataB \
              /target_dir/

すべての属性について:

  • r: 複製数
  • b: ブロックサイズ
  • u: ユーザー
  • g: グループ
  • p:許可
  • c: チェックサムタイプ
  • a:ACL
  • x: XAttr
  • t: タイムスタンプ

別の例ですが、すべての属性を保持します:

hadoop distcp -p rbugpcaxt \
              /source_dir/data \
              /target_dir/data 

このコマンドの詳細については、hadoop-distcpを参照してください 。最も重要なのは、所有者やグループ、またはアクセス許可ではありません。copy コマンドの後で簡単に変更できます。最も重要な属性は、ACL、ブロック サイズ、レプリケーション番号、およびタイムスタンプです。これは、単なるコピー (hdfs dfs -cp) の後で簡単に変更できない追加のプロパティです。

于 2018-10-11T08:44:17.223 に答える
-1

現在、パーミッションのコピー中にファイルの 2 つのコピーを作成することはできません。ただし、ユース ケースによっては、代わりにファイルを移動するオプションがある場合があります。たとえば、ファイルの場所とそのアクセス許可を変更する必要があり、バックアップも保持したかったので (アクセス許可は関係ありません)、アクセス許可を使用して新しい場所に移動し、元の場所にコピーして戻しました。あまり役に立たないことは承知していますが、現時点で Hadoop ではこれが最善です。

于 2015-08-20T01:38:51.073 に答える
-1

ありませんが、ファイルをコピーした後に所有権を変更できます (適切な権限があると仮定します)。

于 2013-11-03T23:07:30.223 に答える