Hadoop CopyToLocal 创建 .crc 文件

Vin*_*nay 2 hadoop copy

HadoopcopyToLocal正在目标目录中创建.crc文件以及实际的数据文件,这对我来说是不必要的,并且会干扰我的进一步数据处理。有没有办法避免创建它而不是稍后删除它?

  val config = new Configuration()
  val fs = FileSystem.get(config)
  fs.copyToLocalFile(new Path(src),new Path(dest))
Run Code Online (Sandbox Code Playgroud)

Maven 依赖:

    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>3.0.0</version>
      <scope>provided</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

cri*_*007 5

在复制文件之前,请使用其中一项或两项

fs.setWriteChecksum(false)
fs.setVerifyChecksum(false)
Run Code Online (Sandbox Code Playgroud)

然而,正如我所提到的,它是一个文件校验和,这意味着它对于验证成功副本是必要的。如果您有一个具有不同内容的同名文件,那么它实际上是一个不同的文件,您可能应该处理这种情况。


Sum*_*t G 5

java中还有另一个版本的copyToLocal函数。

fs.copyToLocalFile(boolean delSrc, Path src, Path dst, boolean useRawLocalFileSystem);
Run Code Online (Sandbox Code Playgroud)

其中RawLocalFileSystem是非crc文件系统。所以,它不会在本地创建任何crc文件

**delSrc** whether to delete the src
**src** path
**dst** path
**useRawLocalFileSystem** whether to use RawLocalFileSystem as local file system or not.
Run Code Online (Sandbox Code Playgroud)

因此,使 useRawLocalFileSystem=true 将解决您的问题。