今天碰到这个问题:
在hdfs上两个目录:
A: hdfs:///user/xxx/sources/xxx
B: hdfs:///user/xxx/sources/xxx_PART
使用命令 hadoop fs -mv hdfs:///user/xxx/sources/xxx_PART hdfs:///user/xxx/sources/xxx
本意是通过rename B ==> A
结果发现:
1. 如果A不存在,则B可以rename到A
2. 如果A存在,则B被移到A的目录下,形成hdfs:///user/xxx/sources/xxx、xxx_PART的结构。
然后和同事聊了下,结果发现,在这个命令这, windows和linux不太一样。
在情况1下,表现基本一致。没有问题。
而在情况2下, windows会弹出窗口问,是否merge
而linux会直接将B移到A的目录下。
然后的然后,就是linux还有参数可以完成目录的重命名。
大概像这样。 mv -t source_file target_file
但是hadoop fs 中mv 并没有这个参数。
于是。。。
我要修改我的code了。。
就是在上传文件过程中,无法使用这种先建文件A_PART,然后重命名为A的方式。
看来应该直接上传。
分享到:
相关推荐
在Hadoop生态系统中,`FileSystem API`是核心组件之一,它提供了一套接口,使得开发者可以方便地进行文件系统的操作,如读取、写入、移动和删除文件。本篇文章将详细讲解如何利用`FileSystem API`执行Hadoop文件的...
1. **HDFS API**:了解基本的HDFS操作,如`FileSystem`类的`create()`, `open()`, `rename()`, `delete()`等方法的使用。 2. **Hadoop配置**:理解如何配置Hadoop环境,包括`core-site.xml`, `hdfs-site.xml`等配置...
在Hadoop生态系统中,Java是主要的编程语言,用于与HDFS(Hadoop Distributed File System)进行交互。本文将深入探讨使用Java管理HDFS文件和文件夹的关键知识点,特别是基于Hadoop 2.4版本。 首先,理解HDFS的基础...
- **移动/重命名文件**:`FileSystem.rename()`方法用于移动或重命名文件或目录。 - **检查文件状态**:`FileSystem.exists()`判断文件是否存在,`FileSystem.getFileStatus()`获取文件或目录的元数据信息,包括...
5. **移动和重命名文件**:`rename(Path src, Path dst)`方法用于移动或重命名文件或目录。 6. **删除文件/目录**:`delete(Path path, boolean recursive)`方法允许删除文件或(如果`recursive`为`true`)整个目录...
1. **FileSystem API**:解释`FileSystem`接口及其主要方法,例如`open()`用于打开文件,`create()`用于创建新文件,`mkdirs()`用于创建目录,`rename()`用于重命名文件或目录,以及`delete()`用于删除文件或目录。...
4. **目录操作**:创建、删除、移动和列出HDFS目录的方法,如`mkdirs()`、`delete()`、`rename()`和`listStatus()`。 5. **配置参数**:了解如何设置Hadoop配置文件(如`core-site.xml`和`hdfs-site.xml`),以指定...
`renameDir()`方法用于重命名目录或文件,调用`FileSystem`的`rename()`方法,接收旧路径和新路径作为参数。这两个方法都在`try-catch`块中进行异常处理,并在操作完成后关闭`FileSystem`连接,以释放资源。 `...
在深入探讨Hadoop源代码分析之前,我们先理解Hadoop的核心组件:HDFS(Hadoop Distributed File System),它是一个分布式文件系统,旨在处理和存储大量数据。本篇分析主要涉及HDFS的操作,如文件重命名、删除、创建...
`FileSystem`类提供了这些操作的方法,例如`FileSystem.create()`用于创建文件,`FileSystem.rename()`用于重命名。 - 数据读写:`FSDataInputStream`和`FSDataOutputStream`分别用于读取和写入文件数据,它们提供...
- **移动和重命名**:使用`FileSystem.rename()`方法进行文件或目录的移动和重命名。 - **删除文件**:使用`FileSystem.delete()`方法删除文件或目录,注意可以设置`recursive`参数为`true`以递归删除整个目录。 ...
在大数据领域,Hadoop是一个关键的开源框架,用于存储和处理海量数据。HDFS(Hadoop Distributed File System)是Hadoop的核心组件,提供了一个高容错、可扩展的分布式文件系统。本文将深入探讨在搭建好Hadoop环境后...
例如,可以使用`fs.delete()`删除文件,`fs.rename()`重命名文件,`fs.globStatus()`获取匹配模式的所有文件。 7. **集群认证**: 如果HDFS集群启用了安全认证(如Kerberos),还需要配置安全上下文,进行身份验证...
在大数据领域,Java被广泛用于开发和操作分布式文件系统,如Hadoop的HDFS(Hadoop Distributed File System)。本文将详细讲解如何使用Java API进行HDFS的基本操作,包括增、删、查等常见任务。 首先,理解HDFS是至...
此外,Hadoop的FileSystem API还提供了诸如`open`方法来读取文件内容,`create`方法来创建新文件,以及`rename`和`delete`方法来进行重命名和删除操作。学习并熟练掌握这些API是构建高效、可靠的Hadoop应用的关键...
Hadoop分布式文件系统(HDFS)是Apache Hadoop项目的核心组件,它是一种高度容错性的分布式文件系统,设计用于运行在廉价硬件上。HDFS在Hadoop架构中扮演着存储大量数据的角色,它将大文件分割成块,并在多台服务器...
8. **`unprotectedRenameTo`** 和 **`renameTo`**: - 用途:实现类似于UNIX的`mv`命令,主要用于重命名文件或目录。 - 实现细节:主要功能实现在`unprotectedRenameTo`中,需要考虑多种情况下的处理逻辑。 9. **...
使用`fs.create()`方法创建文件,`fs.open()`方法读取文件,`fs.rename()`方法重命名文件,`fs.delete()`方法删除文件,以及`fs.exists()`判断文件或目录是否存在。此外,还有如`fs.globStatus()`用于匹配路径模式的...
- **rename**:重命名文件。 - **delete**:删除文件。 - **exists**:检查文件是否存在。 - **listPaths**:列出指定目录下的文件列表。 - **getFileInfo**:获取文件信息。 - **setPermission**:设置文件权限。 -...