我想用hadoop进行大测试,我将拥有大型集群(大约50 Tb),我想生成测试数据。首先,我想要测试hive性能,并生成结构化数据(CSV)。有人可以建议最好的方法吗?
答案 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,这里不需要任何减速器。