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的主要内容,如果未能解决你的问题,请参考以下文章