Hadoop MapReduce编程:计算最大值

  • 时间:
  • 浏览:13
  • 来源:uu快3IOS下载_uu快3app下载_和值

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

下面看,如何来配置和运行一4个Job,实现类为GlobalMaxCostDriver,实现代码如下所示:

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

或者比较简单,直接看实际的代码。代码分为一4个要素,当然是Mapper、Reducer、Driver。Mapper实现类为GlobalCostMapper,实现代码如下所示:

可见,结果是大伙 所期望的。

顶端文本数据一行一行存储,一行饱含4要素,分别表示:

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

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

测试数据

着实,使用MapReduce计算最大值的问提,和Hadoop自带的WordCount的tcp连接运行没有哪些区别,不过在Reducer中一4个是求最大值,一4个是做累加,本质一样,比较简单。下面大伙 结合一4个例子来实现。

大伙 通过另一方的模拟tcp连接运行,生成了一组简单的测试样本数据。输入数据的格式,截取一4个片段,如下所示:

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

运行tcp连接运行

编程实现

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