生成随机数据以进行测试

时间:2012-08-02 15:10:53

标签: hadoop mapreduce hive

我想用hadoop进行大测试,我将拥有大型集群(大约50 Tb),我想生成测试数据。首先,我想要测试hive性能,并生成结构化数据(CSV)。有人可以建议最好的方法吗?

1 个答案:

答案 0 :(得分: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个映射任务,这些任务将并行生成随机数据。

将减速器的数量设置为0,这里不需要任何减速器。