RandomWriter(随机写)例子利用 Map/Reduce把 数据随机的写到dfs中。每个map输入单个文件名,然后随机写BytesWritable的键和值到DFS顺序文件。map没有产生任何输出,所以reduce没有执行。产生的数据是可以配置的。配置变量如下
名字 | 默认值 | 描述 |
test.randomwriter.maps_per_host |
10 | Number of maps/host |
test.randomwrite.bytes_per_map |
1073741824 | Number of bytes written/map |
test.randomwrite.min_key |
10 | minimum size of the key in bytes |
test.randomwrite.max_key |
1000 | maximum size of the key in bytes |
test.randomwrite.min_value |
0 | minimum size of the value |
test.randomwrite.max_value |
20000 | maximum size of the value |
test.randomwriter.maps_per_host表示每个slave节点上运行map的次数。默认情况下,即只有一个数据节点,那么就有10个map,每个map的数据量为1G,因此要将10G数据写入到hdfs中。不过我配置的试验环境中只有2个slave节点,因此有两个map。
test.randomwrite.bytes_per_map我原本以为是随机写输出的测试文件的大小,默认为1G=1*1024*1024*1024,但是我将这个数据改成1*1024*1024以后,输出的测试文件还是1G,这让我很不解。(?)
代码实例
其中test.randomwrite.bytes_per_map=1*1024*1024,test.randomwriter.maps_per_host=1。