基本上我有一个程序,它将文件上传到HDFS。在任务执行结束时上载文件。因此,会发生的事情是许多任务同时(在执行结束时)将文件上传到HDFS,从而产生争用。文件大小小于HDFS块(<64 MB)。我想知道,如果提前创建一个HDFS文件会更快(当任务正在进行一些处理以避免争用时),然后当处理完成时,读取字符串中本地文件的内容,然后只需追加该字符串已经提前创建的HDFS文件。
所以,基本上我的问题是,它有更多的开销,创建一个HDFS文件或将字符串附加到已经创建的HDFS文件?
答案 0 :(得分:0)
我自己测试了这一点,并注意到创建一个HDFS文件所需的时间与添加它几乎相同。这假设写入的内容小于HDFS块大小。如果你上传一个HDFS文件,这相当于创建HDFS文件并附加到它,所以这意味着它只需要两倍的时间来附加它。