1

我想用 Hadoop 运行一些测试,我有一个大型集群(大约 50 Tb),我想生成数据来运行一些测试。首先,我想测试配置单元的性能,因为我想生成结构化数据(CSV)。有人可以建议我实现这一目标的最佳方法。

4

1 回答 1

4

第一个问题是您想将 mapreduce 作业伪装成在没有任何数据的情况下启动映射器。默认情况下,它会为每个块启动 1 个地图任务,所以让我们愚弄一下吧。

为此,首先在 hdfs 中创建一些“假文件”

for i in {1..100}; do echo "hello $i" | hadoop fs -put - fakes/$i.txt ; done

这实际上需要一段时间……也许几分钟。

然后,编写一个“读取”这些文件的 MapReduce 作业。在 Map 任务中,实际上不使用任何数据。在该 map 函数中生成随机数据,并将其写出 ( context.write)。当您的 MapReduce 作业运行时,它将启动 100 个地图任务,这些任务都将并行生成您的随机数据。

将reducer的数量设置为0,这里不需要。

于 2012-08-02T17:41:25.180 回答