Hadoop MapReduce编程:计算最大值

  • 时间:
  • 浏览:2
  • 来源:大发快3官方—UU快三

各个字段之间以空格号分隔。我们 要计算的结果是,求各个国家(以国家代码标识)的成本估值的最大值。

首先,时需保证Hadoop集群正常运行,我这里NameNode是主机ubuntu3。下面看运行系统tcp连接的过程:

我们 通过当事人的模拟系统tcp连接,生成了一组简单的测试样本数据。输入数据的格式,截取另有三个小片段,如下所示:

后边文本数据一行一行存储,一行蕴含4帕累托图,分别表示:

我我觉得,使用MapReduce计算最大值的问题图片,和Hadoop自带的WordCount的系统tcp连接没那此区别,不过在Reducer中另有三个小是求最大值,另有三个小是做累加,本质一样,比较简单。下面我们 结合另有三个小例子来实现。

测试数据

运行系统tcp连接

可能性比较简单,直接看实际的代码。代码分为另有三个小帕累托图,当然是Mapper、Reducer、Driver。Mapper实现类为GlobalCostMapper,实现代码如下所示:

可见,结果是我们 所期望的。

后边实现逻辑非常简单,也不根据空格分隔符,将各个字段的值分离出来,最后输出键值对。

接着,Mapper输出了的键值对列表,在Reducer中就时需进行合并化简,Reducer的实现类为GlobalCostReducer,实现代码如下所示:

编程实现

运行过程控制台输出内容,为宜如下所示:

后边计算一组键值对列表中代价估值的最大值,逻辑比较简单。为了优化,在Map输出后后 ,时需使用该Reducer进行合并操作,即作为Combiner,减少从Mapper到Reducer的数据传输量,在配置Job的后后 时需指定。

下面看,要怎样来配置和运行另有三个小Job,实现类为GlobalMaxCostDriver,实现代码如下所示: