我有一个相当理论化的问题。
我的团队正在开发和支持一个中型java应用程序(目前有40万行),它处理大量二进制文件。目前,我们将所有数据存储在fs存储器上。我们开发了一个小的“框架”,它将允许我们在将来扩展文件存储,我强烈怀疑,在windows/linux文件系统上存储数据仍然是一个瓶颈(不用说,在分布式数据处理中重新发明一个轮子,然后依赖它似乎不是一个真正好的解决方案:)。
我们处理的数据大小从每个文件1-2mb到数百mb(很少是千兆字节),而且经常被访问。但我想强调的是,这些文件大多都很小。同时考虑到我们向大数据和ml分析发展的长期计划,我正在研究将hadoop生态系统集成到我们的应用程序中的可能性。
我目前的问题是hdfs和hbase是否能在我们的环境中发挥良好的作用?据我所知,hdfs的设计是为了存储非常大的二进制数据,但也许使用hbase和一些配置调整,就有可能使它在较小的数据量下工作?我还必须提到性能对读写文件都很重要。
我很想听听你对我提到的技术的经验,也许任何人都可以为这个问题推荐任何替代解决方案(apache parquet?)。
另外,我们的团队在分布式大数据解决方案方面没有像hadoop提供的那样的经验,所以如果您认为这些框架可能适用于我们的案例,也许您可以就它们的集成给出您的反馈,或者就从何处开始我的调查提供任何提示。感谢您的关注。:)
p、 除了fs之外,我们还使用s3来归档旧数据和存储大的(>1gb)二进制文件,因此从这个Angular 来看,引入单一存储系统也很酷。
1条答案
按热度按时间ctrmrzij1#
经过一个小的调查,我了解到分布式文件存储(如hdfs和nosql存储)不太适合以低延迟为目标的应用程序。
这些系统被设计为在大数据世界中运行,在大数据世界中,高的总吞吐量比延迟更有价值,二进制文件的大小也是巨大的。
对于大多数与真实用户交互或为此类应用程序提供服务的基于云的应用程序,最合适的数据存储是对象存储,如amazons3。它们提供了方便的api、合理的延迟、高可用性和几乎无限的可用性。最重要的是,它们通常由第三方管理,这消除了开发人员方面的大量工作和顾虑。