我想将hdfs中的特定模式的文件复制到同一hdfs集群中的另一个位置。dfs shell似乎无法处理此问题:
hadoop dfs -cp /tables/weblog/server=jeckle/webapp.log.1* /tables/tinylog/server=jeckle/
不会返回错误:但也不会复制任何文件。
fcwjkofz1#
首先,支持带通配符的hdfs copy。第二,使用 hadoop dfs 不赞成,你最好用 hadoop fs 或者 hdfs dfs 相反。如果您确定操作没有成功(虽然看起来很成功),您可以查看namenode的日志文件,看看出了什么问题。
hadoop dfs
hadoop fs
hdfs dfs
2mbi3lxu2#
很有趣。这是我在本地运行hadoop0.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
0lvr5msh3#
这两个都对我有用:
~]$ 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
我认为更好的方法是不要用双引号/单引号(“/”)。
x759pob24#
您需要对包含通配符的路径使用双引号,如下所示:
hdfs fs -cp "/path/to/foo*" /path/to/bar/
tkclm6bt5#
如果有人想从用户所在的当前目录复制文件和文件夹,那么
hdfs dfs -put ./
5条答案
按热度按时间fcwjkofz1#
首先,支持带通配符的hdfs copy。第二,使用
hadoop dfs
不赞成,你最好用hadoop fs
或者hdfs dfs
相反。如果您确定操作没有成功(虽然看起来很成功),您可以查看namenode的日志文件,看看出了什么问题。2mbi3lxu2#
很有趣。这是我在本地运行hadoop0.18.0的vm中得到的。你用的是什么版本?我也可以试穿1.2.1
0lvr5msh3#
这两个都对我有用:
我认为更好的方法是不要用双引号/单引号(“/”)。
x759pob24#
您需要对包含通配符的路径使用双引号,如下所示:
tkclm6bt5#
如果有人想从用户所在的当前目录复制文件和文件夹,那么