【发布时间】:2017-06-17 08:04:37
【问题描述】:
我有一个相当理论的问题。
我的团队正在开发和支持一个中型 java 应用程序(目前 40 万行),它处理大量二进制文件。目前,我们将所有数据存储在 FS 存储上。我们开发了一个小型“框架”,它允许我们在未来扩展文件存储,但是,我强烈怀疑将我们的数据存储在 Windows/Linux 文件系统上仍然是一个瓶颈(不用说重新发明轮子)在分布式数据处理中然后依赖它似乎不是一个很好的解决方案:))。
我们处理的数据大小从每个文件 1-2mb 到数百 mb(很少千兆字节)不等,并且经常访问。但我想强调的是,这些文件大多很小。同时考虑到我们转向大数据和机器学习分析的长期计划,我正在研究将 Hadoop 生态系统集成到我们的应用程序的可能性。
我目前的问题是 HDFS 和可能的 HBase 是否会在我们的环境中运行良好?据我所知,HDFS 旨在存储非常大的二进制数据,但也许使用 HBase 和一些配置调整可以使这个东西工作更小的数据?我还必须提到性能确实很重要对于读取和写入文件。
我很想听听您对我提到的技术的体验,也许任何人都可以针对该问题推荐任何替代解决方案(Apache Parquet?)。
此外,我们的团队在分布式大数据解决方案方面没有 Hadoop 提供的解决方案方面的经验,因此如果您认为这些框架可能适用于我们的案例,也许您可以就它们的集成提供反馈或任何提示开始我的调查。感谢您的关注。 :)
附:除了 FS,我们还使用 S3 来归档旧数据并存储大型(> 1gb)二进制文件,因此从这个角度来看,引入单一存储系统也很酷。
【问题讨论】:
-
单个文件是一次写入多次读取吗?
-
@daemon12 是的,这是正确的。此外,目前我们有很多复制操作,但也许我们可以在移动到另一个存储系统时避免这种情况。另外,目前大部分代码都是遗留代码,我们正在逐个模块地迁移到新平台,所以也许我们可以重构业务逻辑,使其不需要太多复制。
标签: jakarta-ee filesystems hbase hdfs parquet