2016-04-26 96 views
1

基本上我有一个程序,它将文件上传到HDFS。文件在任务执行结束时上传。所以,会发生的情况是,许多任务同时(在执行结束时)将文件上传到HDFS,从而造成争用。文件大小小于HDFS块(< 64 MB)。我想知道,如果事先创建一个HDFS文件会更快(当任务正在进行一些处理以避免争用时),然后当处理完成时,读取一个字符串中的本地文件的内容,然后追加该字符串已预先创建的HDFS文件。哪个更快,将文件上传到HDFS或直接创建和写入HDFS文件?

所以,基本上我的问题是,它有更多的开销,创建一个HDFS文件或附加一个字符串到已经创建的HDFS文件?

+0

我只是试试看。我不认为这会很难 –

+0

是的,但我只是想要一些意见。 – pythonic

+0

请提供更多信息。你是什​​么意思:'如果读一个字符串中这样的文件的内容会更快,创建一个HDFS文件,然后直接将该字符串写入HDFS文件'。它与'我有一个程序,它将文件上传到HDFS'有所不同' –

回答

0

我自己测试过这个,并且注意到创建一个HDFS文件几乎与追加它的时间几乎相同。这是假设写入的内容小于HDFS块大小。如果你上传一个HDFS文件,这相当于创建HDFS文件并添加到它,所以这意味着它需要两倍的时间追加到它。