重新组织HDFS中的文件

时间:2017-02-02 00:37:44

标签: hadoop hive

我需要移动看起来像这样的Hive作业写的文件

/foo/0000_0
/foo/0000_1
/bar/0000_0

进入一个看起来像这样的文件结构

/foo/prefix1/prefix2-0000_0
/foo/prefix1/prefix2-0000_1
/bar/prefix1/prefix2-0000_0

将其迁移出群集之前(使用s3distcp)。我一直在寻找hadoop fs,但我找不到能让我这样做的东西。我不想按文件重命名文件。

1 个答案:

答案 0 :(得分:1)

首先,您需要在/ foo中创建子目录。为此使用以下命令

$ hdfs dfs -mkdir / foo / prefix1

这将在/ foo中创建一个子目录。如果你想在prefix1中创建更多的子目录,请使用更新的路径结构递归地使用相同的命令。如果你使用旧版本的Hadoop(1.x),用hadoop替换hdfs。

现在您可以使用以下命令将文件从/ foo移动到/ foo / prefix1。这个newfilename可以是您要为文件指定的任何名称。

$ hdfs dfs -mv / foo / filename / foo / prefix1 / newfilename

希望这能回答你的问题