0

我需要从 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。数据在前者中停止填充,但在后者中继续。现在的问题是将旧的(源)回填到切换。在保持文件结构的同时如何做到这一点?

4

1 回答 1

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/

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

于 2013-09-16T12:13:51.757 回答