我想用hadoop进行大规模测试,我将拥有大集群(大约50Tb),并且我想为测试生成数据。首先我要测试配置单元性能,并生成结构化数据(CSV)。有人能建议最好的方法吗?生成随机数据进行测试
1
A
回答
4
第一个问题是你想伪造mapreduce作业来启动没有任何数据的映射器。默认情况下,它会启动每块1个地图任务,所以让我们来欺骗它。
要做到这一点,在HDFS
for i in {1..100}; do echo "hello $i" | hadoop fs -put - fakes/$i.txt ; done
这创造了一些“假文件”实际上将需要一段时间...也许一两分钟开始了。
然后,写一个“读取”这些文件的MapReduce作业。在地图任务中,请勿实际使用任何数据。在该地图功能中生成随机数据,并将其写出(context.write
)。当您的MapReduce作业运行时,它将启动100个地图任务,这些任务将全部并行生成随机数据。
设置减速器的数量为0,这里不需要任何。
+2
https://github.com/adamjshook/mapreducepatterns/blob/master/MRDP/src/main/java/mrdp/ch7/RandomDataGenerationDriver.java < - 这是一种使用输入格式的很酷的方式 – 2013-08-15 16:52:22
试试这个:http://www.generatedata.com/# – 2012-08-02 19:49:03