如何提高很多小文件的读写速度?

问题描述:

我的工作是提高从磁盘读取大量小文件(1KB)的速度以写入我们的数据库。 该数据库对我来说是开源的,我可以将所有代码从客户端更改到服务器。数据库体系结构是一个简单的主从分布式HDFS数据库,如HBase。从磁盘上的小文件可以插入我们的数据库并自动组合成更大的块,然后写入HDFS(也可以通过数据库将大文件分割成更小的块,然后写入HDFS)如何提高很多小文件的读写速度?

单向改变客户端是增加线程数量。 我没有任何其他idea.Or你可以提供一些想法来做性能分析。

+0

最后我们从分布式机器上读取文件来提高速度 –

处理这些小文件的方法之一可能是将这些小文件转换为序列文件并将其存储到HDFS中。然后使用此文件作为Map Reduce作业输入文件将数据放入HBase或类似的数据库中。

它使用AWS作为一个例子,但它可以是任何存储/队列设置:

如果这些文件都能够在一个共享的存储,例如S3你可以添加一个队列的条目为每个文件,然后就存在开始在队列中投掷服务器以将文件添加到数据库。此时,瓶颈成为数据库而不是客户端。