Hadoop with supercsv



我必须在非常大的文本文件(例如5 tb的大小)中处理数据。处理逻辑使用SuperCSV来解析数据并在其上运行一些检查。显然,由于大小很大,我们计划使用Hadoop来利用并行计算。我在计算机上安装了Hadoop,然后开始写映射器和还原类,我被卡住了。由于地图需要一个键值对,因此要读取此文本文件,我不确定在此特定情况下应该是键和值。有人可以帮我吗?

我的思考过程就是这样(让我知道我是否正确)1)使用SuperCSV和Hadoop读取文件,为HDFS中的每个文件生成supercsv bean。2)对于这些Supercsvbeans,每个都运行我的检查逻辑。

数据是newline分开的吗?即,如果您只是将每个纽带字符上的数据拆分,每个块总是一个完整的记录吗?这取决于SuperCSV如何编码文本以及您的实际数据是否包含newline字符。

如果是:

只需使用TextInputFormat即可。它为您提供(我认为)字节偏移为地图键,而整个行作为值。您可以忽略钥匙,并使用SuperCSV分析线路。

如果否:

您必须编写自己的自定义输入Format-这是一个很好的教程:http://developer.yahoo.com/hadoop/tutorial/module5.html#fileformat。键是什么和值的细节对于映射者的输入并不重要;只需确保两个包含所需的实际数据即可。您甚至可以将NullWritable用作其中一种类型。

最新更新