今天碰到这个问题:
在hdfs上两个目录:
A: hdfs:///user/xxx/sources/xxx
B: hdfs:///user/xxx/sources/xxx_PART
使用命令 hadoop fs -mv hdfs:///user/xxx/sources/xxx_PART hdfs:///user/xxx/sources/xxx
本意是通过rename B ==> A
结果发现:
1. 如果A不存在,则B可以rename到A
2. 如果A存在,则B被移到A的目录下,形成hdfs:///user/xxx/sources/xxx、xxx_PART的结构。
然后和同事聊了下,结果发现,在这个命令这, windows和linux不太一样。
在情况1下,表现基本一致。没有问题。
而在情况2下, windows会弹出窗口问,是否merge
而linux会直接将B移到A的目录下。
然后的然后,就是linux还有参数可以完成目录的重命名。
大概像这样。 mv -t source_file target_file
但是hadoop fs 中mv 并没有这个参数。
于是。。。
我要修改我的code了。。
就是在上传文件过程中,无法使用这种先建文件A_PART,然后重命名为A的方式。
看来应该直接上传。
在hdfs上两个目录:
A: hdfs:///user/xxx/sources/xxx
B: hdfs:///user/xxx/sources/xxx_PART
使用命令 hadoop fs -mv hdfs:///user/xxx/sources/xxx_PART hdfs:///user/xxx/sources/xxx
本意是通过rename B ==> A
结果发现:
1. 如果A不存在,则B可以rename到A
2. 如果A存在,则B被移到A的目录下,形成hdfs:///user/xxx/sources/xxx、xxx_PART的结构。
然后和同事聊了下,结果发现,在这个命令这, windows和linux不太一样。
在情况1下,表现基本一致。没有问题。
而在情况2下, windows会弹出窗口问,是否merge
而linux会直接将B移到A的目录下。
然后的然后,就是linux还有参数可以完成目录的重命名。
大概像这样。 mv -t source_file target_file
但是hadoop fs 中mv 并没有这个参数。
于是。。。
我要修改我的code了。。
就是在上传文件过程中,无法使用这种先建文件A_PART,然后重命名为A的方式。
看来应该直接上传。