通过 hadoop fs -put 将名称中带有方括号的文件上传到 Hadoop

Uploading file with square brackets in its name to Hadoop via hadoop fs -put

我有一个文件名中有一个方括号。这个文件需要通过 hadoop fs -put 上传到 Hadoop。我正在使用 MapR 6.

以下变体导致放置:意外的 URISyntaxException

hadoop fs -put aaa[bbb.txt /destination
hadoop fs -put aaa\[bbb.txt /destination
hadoop fs -put "aaa[bbb.txt" /destination
hadoop fs -put "aaa\[bbb.txt" /destination

你试过了吗"aaa%5Bbbb.txt"?

Hadoop 命令,例如 hadoop fs -put 通常在转义名称方面做得不好。

这是个坏消息。

好消息是使用 MapR,您可以避免所有这些,只需使用标准 Linux 命令(如 cp)将文件复制到 MapR 文件系统的本地挂载。不需要 "upload" 任何东西,因为 MapR 的感觉和行为就像一个普通的文件系统。您可以使用 NFS 或 POSIX 驱动程序获得所需的挂载。

这样做的最大好处是您可以从 Linux 命令的成熟实现中获益。也就是说,这些命令(和 shell)确实正确地引用了你可以相对简单地得到你想要的结果。只需使用单引号即可完成。