haoop 负载均衡
负载均衡
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 负载均衡相关推荐
- Nginx搭建负载均衡集群
(1).实验环境 youxi1 192.168.5.101 负载均衡器 youxi2 192.168.5.102 主机1 youxi3 192.168.5.103 主机2 (2).Nginx负载均衡策 ...
- 【微服务架构】SpringCloud使用Ribbon实现负载均衡
说在前面 软负载均衡的实现方式有两种,分别是服务端的负载均衡和客户端的负载均衡 服务端负载均衡:当浏览器向后台发出请求的时候,会首先向反向代理服务器发送请求,反向代理服务器会根据客户端部署的ip:po ...
- 解决nginx负载均衡的session共享问题
之前有写过ubuntu环境下搭建nginx环境,今天来谈一下nginx session共享问题,查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享服务器有多台,用ngi ...
- 2021年大数据Kafka(十一):❤️Kafka的消费者负载均衡机制和数据积压问题❤️
全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的消费者负载均衡机制和数据积压问题 一.kafka ...
- 负载均衡中使用 Redis 实现共享 Session
最近在研究Web架构方面的知识,包括数据库读写分离,Redis缓存和队列,集群,以及负载均衡(LVS),今天就来先学习下我在负载均衡中遇到的问题,那就是session共享的问题. 一.负载均衡 负载均 ...
- 一分钟了解负载均衡的一切
一分钟了解负载均衡的一切 转自:http://developer.51cto.com/art/201609/517313.htm 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因 ...
- nginx+iis实现负载均衡
nginx安装 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoe ...
- Nginx反向代理负载均衡
环境准备: 总共四台机器,两台装有Nginx的机器做负载均衡,两台机器装有Apache作为WEB服务器. 机器信息 hostname IP 说明 lb01 192.168.1.19 nginx主负载均 ...
- 加权轮询算法PHP,PHP实现负载均衡的加权轮询方法分析
本文实例讲述了PHP实现负载均衡的加权轮询方法.分享给大家供大家参考,具体如下: 1. 负载均衡算法有哪些? 轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务 ...
最新文章
- 百度App Objective-C/Swift 组件化混编之路(一)
- MATLAB怎么表示均布荷载,MATLAB平面四节点等参元分析程序说明
- zero ecilpse下载_推荐10个免费图片下载网站,助你摆脱找图烦恼!建议收藏
- eclipse 恢复默认窗口
- Thymeleaf 的使用
- windows查看linux文件工具,「实用工具」介绍几款Windows系统与Linux服务器传递文件的工具...
- 汇编语言 王爽 【第四版】实验一
- #【软件stm32cubeIDE下配置STM32F407uart1调试SBUS模块-学习笔记-基础样例-遥控小车与四轴模板】
- oracle查看数据库文件大小
- 简单两个矩阵如何用计算机运算,矩阵运算-如何用卡西欧fx-82es计算器计算矩阵和 – 手机爱问...
- android 投屏代码,android投屏技术:控制设备源码分析
- 数字系统设计中形式验证
- linux小白家教学一
- mysql字段uuid_MySQL UUID函数的详解(转)
- 常见设计模式笔试面试题
- 20款免费项目管理系统推荐
- PrintWriter的print和write输出区别
- Apollo星火计划学习笔记——Control 专项讲解(LQR)
- 7-90 社交集群 (30分)--详解
- ArcGIS 切片缓存紧凑文件格式分析与使用
热门文章
- Python版插入排序算法
- 计算机网络 第一章 计算机网络和因特网
- 返回路径平面上的间隙_返回电流及其与通孔的关系
- whitepages 爬取_运营笔记:是时候了解蜘蛛爬取原理了!揭秘收录难题!
- 如何在linux mysql_如何在linux下安装mysql
- python的celery的面试_面试必问的celery,你了解多少?
- QT每日一练day13:QFileDialog文件浏览框
- 《Essential C++》笔记之Iterator Inserter(插入迭代器)
- 怎么读服务器文件内容,服务器上读取文件内容
- java里有没有 0的使用_请问有没有人有零基础Java基础习题?