是否可以使用DistCp來僅複製匹配特定模式的文件?例如, 。對於/ foo我只想要* .log文件。使用通配符的Hadoop DistCp?
14
A
回答
2
DistCp實際上只是一個常規的map-reduce作業:您可以使用與用於輸入常規map-reduce作業相同的通配語法。一般來說,你可以使用foo/*.log
,這應該足夠了。你可以在這裏試用hadoop fs -ls
聲明 - 如果globbing與fs -ls
一起使用,那麼如果能與DistCp一起工作(好吧,差不多,但差異相當微妙)。
12
我意識到這是一個古老的線程。但我自己對這個問題的答案感興趣 - 而且dk89在2013年也再次提出了問題。所以,我們來看看:
distcp不支持通配符。你可以做的最接近的是:
找到您要複製(源)的文件,過濾器,然後用grep,使用AWK HDFS格式,並把結果輸出到「輸入文件」列表:
hadoop dfs -lsr hdfs://localhost:9000/path/to/source/dir/
| grep -e webapp.log.3. | awk '{print "hdfs\://localhost\:9000/" $8'} > input-files.txt
把輸入文件列表到HDFS
hadoop dfs -put input-files.txt .
創建目標目錄
hadoop dfs -mkdir hdfs://localhost:9000/path/to/target/
運行distcp使用輸入文件列表並指定目標hdfs目錄:
hadoop distcp -i -f input-files.txt hdfs://localhost:9000/path/to/target/
相關問題
- 1. Hadoop的DistCp使用命令
- 2. Hadoop的DistCp使用錯誤
- 3. DistCp使用用Hadoop流作業
- 4. Hadoop distcp複製副本
- 5. Hadoop distcp命令不起作用
- 6. Hadoop HDFS複製通配符?
- 7. Hadoop distcp到S3後面的HTTP代理
- 8. 從本地Hadoop到Amazon S3的DistCp
- 9. 帶文件列表的Hadoop distcp
- 10. Hadoop的DistCp使用異常不能重命名tmp文件
- 11. Hadoop distcp命令使用不同的S3目標
- 12. 從S3複製Hadoop distcp:簽名不匹配錯誤
- 13. Hadoop Distcp是否在塊級複製?
- 14. hadoop distcp故障轉移hftp協議
- 15. Hadoop distcp不能正常工作
- 16. Hadoop:爲distcp指定紗線隊列
- 17. 使用Distcp在Hadoop中進行數據攝取
- 18. 'distcp'和'distcp -update'之間的區別?
- 19. 如何使Hadoop Distcp複製文件夾的自定義列表?
- 20. 帶有通配符或變量的distcp目錄的設計模式(glob)
- 21. 使用通配符
- 22. 使用通配符
- 23. 使用通配符
- 24. 使用通配符
- 25. Hadoop的DistCp使用引發無法找到或加載主類org.apache.hadoop.mapreduce.v2.app.MRAppMaster
- 26. 的sp_help使用通配符
- 27. grep的使用通配符
- 28. DistCp使用不是兩個版本的Hadoop我收到以下錯誤之間的Hadoop版本2.0.0和0.20
- 29. 具有不同複製因子的簇之間的hadoop distcp
- 30. 從s3到hadoop的distcp - 文件未找到
似乎沒有與s3n://路徑一起工作。 Hadoop -ls可以和s3n://通配符一起使用,但是很奇怪。 – 2013-03-18 15:34:02
這個問題是從2011年開始的,是否有通過通配符啓用distcp的更改? – Dimitry 2013-06-18 19:40:12
版本2支持通配符,doc在這裏:https://hadoop.apache.org/docs/r1.2.1/distcp2.html – 2016-08-01 20:27:34