Hadoop CopyToLocal创建.crc文件

时间:2018-03-20 03:29:42

标签: hadoop copy

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

  val config = new Configuration()
  val fs = FileSystem.get(config)
  fs.copyToLocalFile(new Path(src),new Path(dest))

Maven依赖:

    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>3.0.0</version>
      <scope>provided</scope>
    </dependency>

2 个答案:

答案 0 :(得分:2)

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

fs.copyToLocalFile(boolean delSrc, Path src, Path dst, boolean useRawLocalFileSystem);

RawLocalFileSystem是非crc文件系统。因此,它将不会在本地创建任何crc文件

**delSrc** whether to delete the src
**src** path
**dst** path
**useRawLocalFileSystem** whether to use RawLocalFileSystem as local file system or not.

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

答案 1 :(得分:1)

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

fs.setWriteChecksum(false)
fs.setVerifyChecksum(false)

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