在 Hadoop 上处理大科学数据

Posted

技术标签:

【中文标题】在 Hadoop 上处理大科学数据【英文标题】:working with big scientific data on Hadoop 【发布时间】:2012-07-24 03:15:42 【问题描述】:

我目前正在启动一个名为“使用 Hadoop 进行时间序列挖掘算法的云计算”的项目。 我拥有的数据是大小超过 TB 的 hdf 文件。在 hadoop 中,我知道我们应该将文本文件作为输入以进行进一步处理(map-reduce 任务)。所以我有一个选择,我将所有 .hdf 文件转换为文本文件,这将花费大量时间。

或者我找到了一种在 map reduce 程序中使用原始 hdf 文件的方法。 到目前为止,我还没有成功找到任何读取 hdf 文件并从中提取数据的 java 代码。 如果有人对如何处理 hdf 文件有更好的了解,我将非常感谢您的帮助。

谢谢 阿尤什

【问题讨论】:

【参考方案1】:

这里有一些资源:

SciHadoop(使用 netCDF,但可能已经扩展到 HDF5)。 您可以使用JHDF5 或下级官方Java HDF5 interface 从map-reduce 任务中的任何HDF5 文件中读取数据。

【讨论】:

谢谢。你知道一些教程来学习使用这个(第二个选项)【参考方案2】:

如果您没有找到任何 java 代码并且可以使用其他语言进行操作,那么您可以使用 hadoop 流。

【讨论】:

什么是 Hadoop 管道以及它如何帮助读取 HDF5?【参考方案3】:

对于您的第一个选项,您可以使用HDF dump 之类的转换工具将 HDF 文件转储为文本格式。否则,您可以使用 Java 库编写程序来读取 HDF 文件并将其写入文本文件。

对于您的第二个选项,SciHadoop 是一个很好的示例,说明如何从 Hadoop 读取科学数据集。它使用 NetCDF-Java 库来读取 NetCDF 文件。 Hadoop 不支持文件 IO 的 POSIX API。因此,它使用额外的软件层将 NetCDF-java 库的 POSIX 调用转换为 HDFS(Hadoop) API 调用。如果 SciHadoop 尚不支持 HDF 文件,您可能会走上更艰难的道路并自己开发类似的解决方案。

【讨论】:

谢谢第一个选项对我来说似乎更合理。【参考方案4】:

SciMATE http://www.cse.ohio-state.edu/~wayi/papers/SciMATE.pdf 是一个不错的选择。它是基于 MapReduce 的一个变体开发的,它已被证明比 Hadoop 更高效地执行许多科学应用程序。

【讨论】:

以上是关于在 Hadoop 上处理大科学数据的主要内容,如果未能解决你的问题,请参考以下文章

深度解析Hadoop与大数据

Spark:超越Hadoop MapReduce

大数据技术与架构——大数据处理架构Hadoop(上)

Spark:超越Hadoop MapReduce

Spark:超越Hadoop MapReduce

基于Hadoop的产品大数据分布式存储优化