带有通配符的Hadoop HDFS副本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有通配符的Hadoop HDFS副本?相关的知识,希望对你有一定的参考价值。

我想将某个模式的文件从hdfs中复制到同一个hdfs集群中的另一个位置。 dfs shell似乎无法处理这个:

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 fshdfs dfs。如果您确定操作不成功(虽然看起来成功),您可以查看namenode的日志文件,看看有什么问题。

另一答案

有趣。这是我在运行Hadoop 0.18.0的本地VM中获得的。你用的是什么版本?我也可以试试1.2.1

hadoop-user@hadoop-desk:~$ hadoop fs -ls /user/hadoop-user/testcopy
hadoop-user@hadoop-desk:~$ hadoop dfs -cp /user/hadoop-user/input/*.txt /user/hadoop-user/testcopy/
hadoop-user@hadoop-desk:~$ 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 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 

我认为更好的方法是不要给出双/单(“/”)引号。

以上是关于带有通配符的Hadoop HDFS副本?的主要内容,如果未能解决你的问题,请参考以下文章

大数据:Hadoop(HDFS 的设计思路设计目标架构副本机制副本存放策略)

大数据系列文章-Hadoop的HDFS读写流程

设置hdfs和hbase副本数。hadoop2.5.2 hbase0.98.6

Hadoop(11)——HDFS如何保证数据安全

Hadoop--HDFS特点

Hadoop学习之路HDFS深入理解