企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # 数据倾斜现象 数据频率倾斜---某一个区域的数据量要远远大于其他区域 数据大小倾斜---部分记录的大小远远大于平均值 # 如何收集倾斜数据 在reduce方法中加入记录map输出键的详细情况的功能 ~~~ public static final String MAX_VALUES = "skew.maxvalues"; private int maxValueThreshold; @Override public void configure(JobConf job) { //设置个最大值 maxValueThreshold = job.getInt(MAX_VALUES, 100); } @Override protected void reduce(Text key, Iterator<Text> values, OutputCollector<Text, Text> output, Reporter reporter) throws IOException, InterruptedException { int i = 0; while(values.hasNext()) { values.next(); //迭代的时候把这个加加 i++; } //如果值大于自己设置的最大值,就把他们记录下来 if (++i > maxValueThreshold) { log.info("Received"+ i + " values for key " + key); } } ~~~