所在位置:主页 > 数据处理 > 魔兽世界怎样查看未命中和偏斜在战斗中的百分比?

魔兽世界怎样查看未命中和偏斜在战斗中的百分比?

发布时间:2024-01-04 06:23来源:www.sf1369.com作者:宇宇

魔兽世界怎样查看未命中和偏斜在战斗中的百分比?

用recount插件,伤害输出统计里面。点击具体的一个输出类型,比如“肉搏”就会显示出“肉搏”的具体数据。其中“MISS”代表的埋或滚是未命中。弯余“dodged”表示被躲闪。“immune”表示免疫。“parry”表示被格挡。“glancing”表示偏斜。百分比都会显示在数据次团戚数的后面。

account插件如果你用的大脚,打开团队插件里面就有

recounth统计插件

数据倾斜原理及解决?

数据倾斜的原因:在进行shuffle的时候,必须 将各个节点上相同的 key 拉取到某个节点上的一个 task 来进行处理 ,比如按照key进行聚合或join等操作。此时如果某个 key对应的数据量特别大的话,就会发生数据倾斜。比如大部分key对应10条数据,但是个别key却对应了100万条数据,那么大部分task可能就只 会分配到10条数据,然后1秒钟就运行完了;但是个别task可能分配到了100万数据,要运行一两个小时。

解决方案:

第一点:直接过滤掉那些引起倾斜的Key。这种方法很简单,既然你倾斜,那我不用你就完事。比如说,总共有100万个key。只有2 个key,是数据量达到10 万的。其他所有的key,对应的数量都是几十,这样join后会引起倾斜。这个时候,自 己可以去取舍,如果业务和需求可以理解和接受的话,在从hive 表查询源数据的时候,直接在sql 中 用 where 条件,过滤掉某几个 key 。那么这几个 原先有大量数据,会导致数据倾斜的key,被过滤掉之后,那么在的spark作业中,自然就不会发生数据倾斜了。

第二点:Hive ETL做处理

通过Hive ETL预先对数据按照key进行聚合,或者是预先和其他表进行join,然后在Spark作业中针对的数据源就不是原来的Hive表了,而是预处 理后的Hive表。此时由于数据已经预先进行过聚合或join操作了,那么在Spark作业中也就不需要使用原先的shuffle类算子执行这类操作了。Hive ETL中进行group by或者join等shuffle操作时,还是会出现数据倾斜,导致Hive ETL的速度很慢。我们只是把数据倾斜的发生提前到了Hive ETL中。

第三点:提高shuffle的操作并行度在对RDD执行shuffle算子时,给shuffle算子传入一个参数,比如reduceByKey(1000),该参数就设置了这个shuffle算子执行时shuffle read task 的数量。对于Spark SQL中的shuffle类语句,比如group by、join等。