【问题标题】:Using HDFS to store files of different sizes使用HDFS存储不同大小的文件
【发布时间】: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


【解决方案1】:

经过小调查,我了解到 HDFS 和 noSQL 存储等分布式文件存储不太适合以低延迟为目标的应用程序。

这些系统设计用于在大数据世界中运行,高整体吞吐量比延迟更有价值,并且二进制文件的大小很大。

对于大多数与真实用户交互或为此类应用程序提供服务的基于云的应用程序,最合适的数据存储是对象存储,例如 Amazon S3。它们提供方便的 API、合理的延迟、高可用性和几乎无限制。最重要的是,它们通常由第 3 方管理,这消除了开发人员方面的大量工作和顾虑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-29
    • 2017-03-28
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多