ファイルの特定のパターンをhdfs内から同じhdfsクラスタ内の別の場所にコピーしたいとします。 DFSシェルはこれを処理することはできていないようです:ワイルドカードを使用したHadoop HDFSコピー?
hadoop dfs -cp /tables/weblog/server=jeckle/webapp.log.1* /tables/tinylog/server=jeckle/
エラーは返されません。まだ何もファイルがコピーされません。
ファイルの特定のパターンをhdfs内から同じhdfsクラスタ内の別の場所にコピーしたいとします。 DFSシェルはこれを処理することはできていないようです:ワイルドカードを使用したHadoop HDFSコピー?
hadoop dfs -cp /tables/weblog/server=jeckle/webapp.log.1* /tables/tinylog/server=jeckle/
エラーは返されません。まだ何もファイルがコピーされません。
:私のために働いたこれらの両方
hdfs fs -cp "/path/to/foo*" /path/to/bar/
まず、ワイルドカードを使用したHDFSコピーがサポートされています。次に、hadoop dfs
の使用は推奨されていませんが、代わりにhadoop fs
またはhdfs dfs
を使用することをお勧めします。操作が成功しなかったと確信できる場合(成功したように見えますが)、namenodeのログファイルをチェックして何が間違っているかを確認することができます。
OPでは、指定されたワイルドカードパターンを使用してファイルがコピーされません。 「ワイルドカードがサポートされています」と述べる場合は、デモンストレーションしてください。 – javadba
私はクラスタ上であなたと同じコマンドを試したので、2.1と0.23.9の両方で動作します。真剣に、あなたのnamenodeログを確認してください – zhutoulala
興味深い。これは、Hadoop 0.18.0を実行しているローカルVMで取得したものです。どのバージョンを使用していますか?私は1.2.1に試すことができますまた、
このようなワイルドカードが含まれていますが、あなたのパスを二重引用符を使用する必要がある[email protected]:~$ hadoop fs -ls /user/hadoop-user/testcopy
[email protected]:~$ hadoop dfs -cp /user/hadoop-user/input/*.txt /user/hadoop-user/testcopy/
[email protected]:~$ hadoop fs -ls /user/hadoop-user/testcopy
Found 2 items
-rw-r--r-- 1 hadoop-user supergroup 79 2014-01-06 04:35 /user/hadoop-user/testcopy/HelloWorld.txt
-rw-r--r-- 1 hadoop-user supergroup 140 2014-01-06 04:35 /user/hadoop-user/testcopy/SampleData.txt
あなたは非常に古いバージョンのhadoopを実行しています..しかし、この場合でもそれは問題ではありません。私は1.2.1です。 – javadba
Tried 1.2.1と同様に動作します。しかし、私は[link](http://wiki.apache.org/hadoop/FAQ#Wildcard_characters_doesn.27t_work_correctly_in_FsShell)を見つけました。確認してください。 –
:
~]$ hadoop fs -cp -f /user/cloudera/Dec_17_2017/cric* /user/cloudera/Dec_17_2017/Dec_18
~]$ hadoop fs -cp -f "/user/cloudera/Dec_17_2017/cric*" /user/cloudera/Dec_17_2017/Dec_18
ダブル/シングル( "/")引用符を与えない方が良いと思います。
好奇心 - どのように機能するのですか?シェルは、hdsが見る前に "*"を展開します。あなたは* single * quoteを意味しましたか? – javadba
両方の引用については関係ありません。引用だけでは、シェルはhdfsコマンドに単一のパラメータを渡すのではなく、ワイルドカードを展開しないように指示します。私はそれが両方の引用符を試して動作します。 – MoreFreeze
はい、あなたは正しいです。私は授与されました。 – javadba