在Hadoop上处理大科学数据

在Hadoop上处理大科学数据,hadoop,mapreduce,hdf5,netcdf,Hadoop,Mapreduce,Hdf5,Netcdf,我目前正在启动一个名为“使用Hadoop的时间序列挖掘算法云计算”的项目。 我所拥有的数据是大小超过1 TB的hdf文件。据我所知,在hadoop中,我们应该有文本文件作为进一步处理的输入(map reduce任务)。所以我有一个选择,我把所有的.hdf文件转换成文本文件,这将花费很多时间 或者我找到了一种在MapReduce程序中使用原始hdf文件的方法。 到目前为止,我还没有成功地找到任何可以读取hdf文件并从中提取数据的java代码。 如果有人对如何使用hdf文件有更好的想法,我将非常感谢

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

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

谢谢
Ayush

以下是一些资源:

  • (使用netCDF,但可能已扩展到HDF5)
  • 您可以使用或下级官员从map reduce任务中的任何HDF5文件中读取数据
如果您找不到任何java代码,并且可以使用其他语言,那么您可以使用hadoop流媒体。

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


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

SciMATE是一个不错的选择。它是基于MapReduce的一个变体开发的,该变体已被证明比Hadoop更高效地执行许多科学应用。

谢谢。你知道一些使用这个(第二个选项)的教程吗?谢谢第一个选项对我来说似乎更合理。什么是Hadoop管道,它如何帮助阅读HDF5?