当前位置: 首页 > news >正文

个人网站页面设计素材珠海市品牌网站建设平台

个人网站页面设计素材,珠海市品牌网站建设平台,酒类做网站,安装wordpress到搭建服务器数据倾斜#xff1a;主要就是在处理MR任务的时候#xff0c;某个reduce的数据处理量比另外一些的reduce的数据量要大得多#xff0c;其他reduce几乎不处理#xff0c;这样的现象就是数据倾斜。 官方解释#xff1a;数据倾斜指的是在数据处理过程中#xff0c;由于某些键…数据倾斜主要就是在处理MR任务的时候某个reduce的数据处理量比另外一些的reduce的数据量要大得多其他reduce几乎不处理这样的现象就是数据倾斜。 官方解释数据倾斜指的是在数据处理过程中由于某些键的分布极度不均匀导致某些节点处理的数据量显著多于其他节点。‌这种情况会引发性能瓶颈阻碍任务的并行执行增加作业的整体执行时间。在Hadoop的MapReduce作业中数据倾斜尤为明显因为它会导致某些Reduce任务处理的数据量远大于其他任务从而造成集群整体处理效率低下的问题。 这里比如有一个文本数据里面内容全是hadoop, hadoop, hadoop,hadoop ....,假设有800万条数据这样更容易显示数据倾斜的效果里面都是同样的单词默认的hash取余分区的方法明显不太适合所以我们要自定义分区重写分区方法。以及设置多个reduce这里我设置为3主要就是对数据倾斜的key进行一个增加后缀的方法以及在Map阶段就增加后缀实现过程是将每个hadoop都进行增加后缀刚开始会全部默认存放到第一个分区里0分区然后写到分区后自定义分区方法SkewPartitioner就会对里面的数据进行分析如果后缀是1就分到1区里面一共就0、1、2三个分区以此来解决数据倾斜的问题。 注意在Job端进行自定义分区器的设置job,setPartitionerClass(SkewPartitioner.class) 具体代码如下 package com.shujia.mr;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; 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.Partitioner; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import java.io.IOException;public class Demo05SkewDataMR {public static class MyMapper extends MapperLongWritable, Text, Text, IntWritable {Overrideprotected void map(LongWritable key, Text value, MapperLongWritable, Text, Text, IntWritable.Context context) throws IOException, InterruptedException {String line value.toString();// 将每一行数据按照逗号/空格进行切分for (String word : line.split([,\\s])) {// 使用context.write将数据发送到下游// 将每个单词变成 单词,1 形式// 对数据倾斜的Key加上随机后缀if (hadoop.equals(word)) {// 随机生成 0 1 2int prefix (int) (Math.random() * 3);context.write(new Text(word _ prefix), new IntWritable(1));} else {context.write(new Text(word), new IntWritable(1));}}}}public static class MyReducer extends ReducerText, IntWritable, Text, IntWritable {Overrideprotected void reduce(Text key, IterableIntWritable values, ReducerText, IntWritable, Text, IntWritable.Context context) throws IOException, InterruptedException {// 统计每个单词的数量int cnt 0;for (IntWritable value : values) {cnt cnt value.get();}context.write(key, new IntWritable(cnt));}}// Driver端组装调度及配置任务// 可以通过args接收参数// 本任务接收两个参数输入路径、输出路径public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {Configuration conf new Configuration();// 创建JobJob job Job.getInstance(conf);// 配置任务job.setJobName(Demo05SkewDataMR);job.setJarByClass(Demo05SkewDataMR.class);// 设置自定义分区器job.setPartitionerClass(SkewPartitioner.class);// 手动设置Reduce的数量// 最终输出到HDFS的文件数量等于Reduce的数量job.setNumReduceTasks(3);// 配置Map端job.setMapperClass(MyMapper.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);// 配置Reduce端job.setReducerClass(MyReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);// 验证args的长度if (args.length ! 2) {System.out.println(请传入输入输出目录);return;}String input args[0];String output args[1];// 配置输入输出的路径FileInputFormat.addInputPath(job, new Path(input));Path ouputPath new Path(output);// 通过FileSystem来实现覆盖写入FileSystem fs FileSystem.get(conf);if (fs.exists(ouputPath)) {fs.delete(ouputPath, true);}// 该目录不能存在会自动创建如果已存在则会直接报错FileOutputFormat.setOutputPath(job, ouputPath);// 启动任务// 等待任务的完成job.waitForCompletion(true);} }// 自定义分区在Map阶段给key加上随机后缀基于后缀返回不同的分区编号 class SkewPartitioner extends PartitionerText, IntWritable {Overridepublic int getPartition(Text text, IntWritable intWritable, int numPartitions) {String key text.toString();int partitions 0;// 只对数据倾斜的key做特殊处理if (hadoop.equals(key.split(_)[0])) {switch (key) { // case hadoop_0: // partitions 0; // break;case hadoop_1:partitions 1;break;case hadoop_2:partitions 2;break;}} else {// 正常的key还是按照默认的Hash取余进行分区partitions (key.hashCode() Integer.MAX_VALUE) % numPartitions;}return partitions;} }
http://www.dnsts.com.cn/news/77691.html

相关文章:

  • 网站开发工具js企业信息化管理平台
  • 建设标准信息网站在线图片编辑器软件
  • 网站哪个公司做的比较好国际市场调研公司
  • 网站客户端制作西安大雁塔高多少米
  • 电商网站建设概念甘肃省建设厅执业资格注册中心网站
  • wordpress logo 太小汕头网站时优化
  • 专业网站优化报价建设部网站公示钦州公租房摇号查询
  • 怎么做网站子页wordpress captcha
  • 郑州高端网站定制公司推广文案
  • 定制化网站建设公司描述photoshop在网站建设中的作用与特点.
  • 顺企网宁波网站建设北京建筑设计网站
  • 用小米路由器做网站hhvm wordpress 空白
  • 北京网站建设报价明细西安网站建设报价方案
  • 实训网站开发目的定制app开发的流程
  • 网站建设相关视频教程wordpress字体编辑插件下载
  • 山西网站建设免费花都网站建设公司怎么样
  • 台州找人做网站自媒体平台注册官网下载
  • 做网站买服务器怎么样刘强东当年做网站读的什么书
  • 阿里云的网站网站建设中html代码
  • 永康公司网站开发国家企业信用公示信息年报入口
  • 戴南网站建设小程序平台推广方案
  • 邢台做网站咨询东莞住建局网
  • 兰州道路建设情况网站海外网站建设教程
  • .net做网站开发吗wordpress域名搬家
  • 个人做同城网站赚钱吗c2c模式成功案例分析
  • 网站域名注册商标网站建设方法氵金手指排名27
  • 网站建设前端技术网站备案空间备案吗
  • 阿里云网站建设 部署与发布烟台网站建设方案咨询
  • 网站排队队列怎么做wordpress主题评论
  • 做知识产权服务的网站广州营销型企业网站建设