数据集展示:
首先,一定要保证Hadoop已启动。
该部分的代码为:在这放截图:
splitMapper类:
SplitMapper.java。
在SplitMapper.java类:首先,将一行进行数据分割,分隔到一个数组里面,只要数据集下标是1(月)的和11(数量)的,代表山西省一个月卖出多少辆车,例<3,1>为3月份销售一辆。数组的长度>11则不需要,并且不为空且不能为空数据都不进行统计。若不为空:将下标1的放入到month中,下标为11的放入到num中。将月看成key,将num看成value。经过map处理后变为<3 ,{1 ,1,1,1}>
在数据集中,arr[0]代表省份,arr[1]代表月份,arr[11]代表数量,依次往后。
例:3 1代表3月份卖出去一辆。
Countreduce类:
在CountReducer.java中,CountReducer是对SplitMapper中划分出来的数据进行组合,例如:<3,{1,1,1}>对后面的数量进行一个求和,获取value值。其次,再将所有月份的数量(value值)进行相加,计算出total,例<3,4>。
在cleanup中,打扫,把map中的key拿出来放到集合里,进行遍历,再取value放到集合里。通过percent算出比例,放入到num里面,三月份卖的数量在全年中占的比例。
main函数类:
在main中,设置mapper,reduce等类属性,处理的数据源,存放结果的路径已指定。
该报告还有
代码报告。
演示在Xshell7中演示(以统计不同品牌的车在每个月的销售量分布为例)
第一步,在终端输入(检查Hadoop是否成功启动):jps
第二步,新建/input文件夹:命令如下
第三步,将数据集通过WinScp上传到xshell7中,再将放入到/input中,命令如下
第四步,上传打好的jar包,构建mapreduce工程,并指定数据集和输出结果的路径,命令如下:
第五步,查看输出文件,命令如下:
第六步,结果显示: