hadoop -appendToFile与hadoop -put之间的区别是什么用于连续更新流数据到hdfs

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop -appendToFile与hadoop -put之间的区别是什么用于连续更新流数据到hdfs相关的知识,希望对你有一定的参考价值。

根据hadoop源代码,以下描述从类中提取 -

appendToFile

"Appends the contents of all the given local files to the
given dst file. The dst file will be created if it does not exist."

    "Copy files from the local file system into fs. Copying fails if the file already exists, unless the -f flag is given.
Flags:
-p : Preserves access and modification times, ownership and the mode.
-f : Overwrites the destination if it already exists.
-l : Allow DataNode to lazily persist the file to disk. Forces
replication factor of 1. This flag will result in reduced
durability. Use with care.
-d : Skip creation of temporary file(<dst>._COPYING_)."

我正在尝试将文件定期更新为hdfs,因为它是从我本地文件系统中的流式源动态更新的。

我应该使用appendToFile和put,以及为什么?

答案

appendToFile修改HDFS中的现有文件,因此只需要将新数据流式传输/写入文件系统。

put重写整个文件,因此需要将整个新版本的文件流式传输/写入文件系统。

如果您只是附加到文件(即将日志添加到文件末尾),您应该支持appendToFile。如果这是你的用例,这个功能会更快。如果文件的变化不仅仅是简单的追加到最后,你应该使用put(速度较慢,但​​你不会丢失数据或损坏你的文件)。

以上是关于hadoop -appendToFile与hadoop -put之间的区别是什么用于连续更新流数据到hdfs的主要内容,如果未能解决你的问题,请参考以下文章

hadoop 配置文件放到哪里

hadoop2 环境的搭建(自动HA)

Hadoop高手之路3-Hadoop集群搭建

Hadoop可以用来做啥

hadoop是啥 hadoop介绍

hadoop入门容易吗?