基本上我有一个程序,上传文件到hdfs。文件在任务执行结束时上载。因此,很多任务同时(在执行结束时)将文件上载到hdfs,从而产生争用。文件大小小于hdfs块(<64 mb)。我想知道,如果只是提前创建一个hdfs文件(同时任务正在进行一些处理以避免争用),然后在处理完成时,读取一个字符串中的本地文件的内容,并将该字符串附加到已经提前创建的hdfs文件中,是否会更快。所以,基本上我的问题是,创建一个hdfs文件还是在已经创建的hdfs文件中添加一个字符串,哪个开销更大?
ojsjcaue1#
我自己也做过测试,并且注意到创建一个hdfs文件所需的时间几乎与附加到它所需的时间相同。这是假设写入的内容小于hdfs块大小。如果你上传一个hdfs文件,那就相当于创建一个hdfs文件并附加到它上面,所以这意味着它需要的时间是附加到它上面的两倍。
1条答案
按热度按时间ojsjcaue1#
我自己也做过测试,并且注意到创建一个hdfs文件所需的时间几乎与附加到它所需的时间相同。这是假设写入的内容小于hdfs块大小。如果你上传一个hdfs文件,那就相当于创建一个hdfs文件并附加到它上面,所以这意味着它需要的时间是附加到它上面的两倍。