在几个步骤中写入HDFS文件的效率如何?

时间:2016-06-24 17:09:55

标签: java scala hadoop apache-spark hdfs

我知道HDFS块大小为64 MB。但是,让我们说我创建了一个新的HDFS文件,并继续向其写入数据,但同时只能写入4KB的数据。这会非常低效吗?到最后,我的文件大小可能是1GB,但是一点一点地写入数据会使写入这样的文件效率低下吗?我的意思是,在写入文件之前缓冲我的数据是很重要的。例如,在这种情况下,我可以将数据累积到缓冲区,直到达到64 MB的大小,然后将其写入HDFS文件,并在清除缓冲区后重复该过程。

1 个答案:

答案 0 :(得分:0)

首先,HDFS blocksize取决于您,默认是可配置的,当您将其放入HDFS时,您可以为给定文件设置不同的块大小。

如果您想要将数据放入HDFS,那么您的数据就不在了,那么请使用Flume,将源设置为数据生成器,将接收器设置为HDFS上的文件,让工具完成其工作而不会挣扎细节。如果数据在数据库中,您也可以转到Sqoop。

否则,如果您正在进行实验,那么请进行性能测试,并检查哪种方法更好,这在很大程度上取决于您的数据生成方式以及您使用哪个库。