hadoop复制或移动

时间:2013-09-16 10:57:10

标签: hadoop copy

我需要从HDFS内部复制/移动到同一HDFS中的另一个位置,但目标的目录与源不同。

例如:

  来源:
  /warehouse/elephant/f_transactions_report/date=2012-12-01/9182837475_report_2012-12-01_processed.csv.gz
  /warehouse/elephant/f_transactions_report/date=2012-12-02/9182837475_report_2012-12-02_processed.csv.gz
  /warehouse/elephant/f_transactions_report/date=2012-12-03/9182837475_report_2012-12-03_processed.csv.gz ...

  

目的地:
  /warehouse/elephant/f_transactional_events/date=2012-12-01/9182837475_report_2012-12-01_processed.csv.gz   /warehouse/elephant/f_transactional_events/date=2012-12-02/9182837475_report_2012-12-02_processed.csv.gz   /warehouse/elephant/f_transactional_events/date=2012-12-03/9182837475_report_2012-12-03_processed.csv.gz ...

新要求导致源名称从f_transactions_report更改为f_transactional_events。数据停止在前者中填充,但在后者中继续。现在的问题是将旧的(源)回填到切换。如何在维护文件结构的同时完成这项工作?

1 个答案:

答案 0 :(得分:0)

找到我自己的问题的解决方案!
1. hadoop按目录获取所有日期并在本地保存。例如
    hadoop fs -get / warehouse / elephant / f_transactions_report / date = 2012-12 *〜/ elephant


2。 Hadoop将所有本地保存的目录放回到新目的地。例如
    hadoop fs -put~ / elephant / warehouse / elephant / f_transactional_events /

目录结构将保持不变。检查有效性!