簡體   English   中英

如何從HDFS到S3獲取文件

[英]How to get files from HDFS to S3

我正在嘗試從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(...)方法中得到錯誤的答案。

這甚至是正確的方法嗎? 如果是這樣,對我在做什么錯有任何猜測嗎?

好吧,最后這確實奏效了。 我不太確定為什么會出錯,我相信這是一個嚴重的小錯誤。 上面的代碼通常應該可以工作(如果您在閱讀時遇到與我相同的問題)。 有信心,只要解決一些小問題即可。

似乎hadoop distcp不夠有效,因此我運行以下腳本來執行此操作:

hadoop fs -copyToLocal / parquet / / home / hadoop / aws s3 cp / home / hadoop / parquet / s3:// shinezone-datacenter-data / result /-遞歸--quiet

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM