我正在尝试从 HDFS 到 S3 获取一些最终结果文件。我想使用 DistCp,但它似乎只复制整个文件夹,我只想复制文件夹中的一些文件。
所以我想我需要将我想要的文件移动到他们自己的文件夹中,然后使用 DistCp 上传该文件夹。我明白我应该用它FileSystem.rename(path1,path2)
来做到这一点。
所以我正在尝试对 java 中的 1 个文件进行这个小测试:
Path itemsTable = new Path("hdfs://localhost/process-changes/itemstable-*");
itemsTable.getFileSystem(getConf()).mkdirs(new Path("hdfs://localhost/output"));
//Simple test moving just 1 file around HDFS via java API
boolean success = itemsTable.getFileSystem(getConf()).rename(new Path("hdfs://localhost/process-changes/itemtable-r-00001"), new Path("hdfs://localhost/output/itemtable-r-00001"));
但我总是从 rename(...) 方法得到错误的回报。
这甚至是正确的方法吗?如果是这样,任何猜测我做错了什么?