负载均衡

package skew;import java.io.IOException;
import java.util.Random;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import cn.edu360.mr.wc.JobSubmitterLinuxToYarn;
import cn.edu360.mr.wc.WordcountMapper;
import cn.edu360.mr.wc.WordcountReducer;public class SkewWordcount {public static class SkewWordcountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {//mapper类里的东西在整个map过程中,所有的mapper同用Random random = new Random();Text k = new Text();IntWritable v = new IntWritable(1);int numReduceTasks = 0;@Override//setup在执行maptask前调用一次protected void setup(Mapper<LongWritable, Text, Text, IntWritable>.Context context)throws IOException, InterruptedException {numReduceTasks = context.getNumReduceTasks();}@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {String[] words = value.toString().split(" ");for (String w : words) {k.set(w + "\001" + random.nextInt(numReduceTasks));context.write(k, v);}}}public static class SkewWordcountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {IntWritable v = new IntWritable();@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context)throws IOException, InterruptedException {int count = 0;for (IntWritable value : values) {count += value.get();}v.set(count);context.write(key, v);}}public static void main(String[] args) throws Exception {Configuration conf = new Configuration();Job job = Job.getInstance(conf);job.setJarByClass(SkewWordcount.class);job.setMapperClass(SkewWordcountMapper.class);job.setReducerClass(SkewWordcountReducer.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);// 设置maptask端的局部聚合逻辑类job.setCombinerClass(SkewWordcountReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.setInputPaths(job, new Path("f:/input"));FileOutputFormat.setOutputPath(job, new Path("f:/skew-out"));job.setNumReduceTasks(3);boolean res = job.waitForCompletion(true);System.exit(res?0:1);}
}

haoop 负载均衡相关推荐

  1. Nginx搭建负载均衡集群

    (1).实验环境 youxi1 192.168.5.101 负载均衡器 youxi2 192.168.5.102 主机1 youxi3 192.168.5.103 主机2 (2).Nginx负载均衡策 ...

  2. 【微服务架构】SpringCloud使用Ribbon实现负载均衡

    说在前面 软负载均衡的实现方式有两种,分别是服务端的负载均衡和客户端的负载均衡 服务端负载均衡:当浏览器向后台发出请求的时候,会首先向反向代理服务器发送请求,反向代理服务器会根据客户端部署的ip:po ...

  3. 解决nginx负载均衡的session共享问题

    之前有写过ubuntu环境下搭建nginx环境,今天来谈一下nginx session共享问题,查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享服务器有多台,用ngi ...

  4. 2021年大数据Kafka(十一):❤️Kafka的消费者负载均衡机制和数据积压问题❤️

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的消费者负载均衡机制和数据积压问题 一.kafka ...

  5. 负载均衡中使用 Redis 实现共享 Session

    最近在研究Web架构方面的知识,包括数据库读写分离,Redis缓存和队列,集群,以及负载均衡(LVS),今天就来先学习下我在负载均衡中遇到的问题,那就是session共享的问题. 一.负载均衡 负载均 ...

  6. 一分钟了解负载均衡的一切

    一分钟了解负载均衡的一切 转自:http://developer.51cto.com/art/201609/517313.htm 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因 ...

  7. nginx+iis实现负载均衡

    nginx安装     Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoe ...

  8. Nginx反向代理负载均衡

    环境准备: 总共四台机器,两台装有Nginx的机器做负载均衡,两台机器装有Apache作为WEB服务器. 机器信息 hostname IP 说明 lb01 192.168.1.19 nginx主负载均 ...

  9. 加权轮询算法PHP,PHP实现负载均衡的加权轮询方法分析

    本文实例讲述了PHP实现负载均衡的加权轮询方法.分享给大家供大家参考,具体如下: 1. 负载均衡算法有哪些? 轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务 ...

最新文章

  1. 百度App Objective-C/Swift 组件化混编之路(一)
  2. MATLAB怎么表示均布荷载,MATLAB平面四节点等参元分析程序说明
  3. zero ecilpse下载_推荐10个免费图片下载网站,助你摆脱找图烦恼!建议收藏
  4. eclipse 恢复默认窗口
  5. Thymeleaf 的使用
  6. windows查看linux文件工具,「实用工具」介绍几款Windows系统与Linux服务器传递文件的工具...
  7. 汇编语言 王爽 【第四版】实验一
  8. #【软件stm32cubeIDE下配置STM32F407uart1调试SBUS模块-学习笔记-基础样例-遥控小车与四轴模板】
  9. oracle查看数据库文件大小
  10. 简单两个矩阵如何用计算机运算,矩阵运算-如何用卡西欧fx-82es计算器计算矩阵和 – 手机爱问...
  11. android 投屏代码,android投屏技术:控制设备源码分析
  12. 数字系统设计中形式验证
  13. linux小白家教学一
  14. mysql字段uuid_MySQL UUID函数的详解(转)
  15. 常见设计模式笔试面试题
  16. 20款免费项目管理系统推荐
  17. PrintWriter的print和write输出区别
  18. Apollo星火计划学习笔记——Control 专项讲解(LQR)
  19. 7-90 社交集群 (30分)--详解
  20. ArcGIS 切片缓存紧凑文件格式分析与使用

热门文章

  1. Python版插入排序算法
  2. 计算机网络 第一章 计算机网络和因特网
  3. 返回路径平面上的间隙_返回电流及其与通孔的关系
  4. whitepages 爬取_运营笔记:是时候了解蜘蛛爬取原理了!揭秘收录难题!
  5. 如何在linux mysql_如何在linux下安装mysql
  6. python的celery的面试_面试必问的celery,你了解多少?
  7. QT每日一练day13:QFileDialog文件浏览框
  8. 《Essential C++》笔记之Iterator Inserter(插入迭代器)
  9. 怎么读服务器文件内容,服务器上读取文件内容
  10. java里有没有 0的使用_请问有没有人有零基础Java基础习题?