基本上我有一个程序,可以将文件上传到 HDFS。这些文件在任务执行结束时上传。因此,发生的情况是许多任务同时(在执行结束时)将文件上传到 HDFS,从而造成争用。文件大小小于一个 HDFS block (< 64 MB)。我想知道,是否提前创建一个 HDFS 文件会更快(同时任务正在做一些处理以避免争用),然后在处理完成后,以字符串形式读取本地文件的内容,然后追加将该字符串添加到预先创建的 HDFS 文件中。
所以,基本上我的问题是,创建 HDFS 文件或将字符串附加到已创建的 HDFS 文件哪个开销更大?
最佳答案
我自己对此进行了测试,并注意到创建 HDFS 文件所花费的时间几乎与追加文件所花费的时间相同。这是假设写入的内容小于 HDFS block 大小。如果您上传一个 HDFS 文件,这相当于创建 HDFS 文件并附加到它,所以这意味着它花费的时间是附加到它的两倍。
关于java - 将文件上传到 HDFS 或直接创建和写入 HDFS 文件哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36865214/