Guangxu Cheng created KYLIN-4567:
------------------------------------
Summary: Improve TopN merge performance in MR engine
Key: KYLIN-4567
URL: https://issues.apache.org/jira/browse/KYLIN-4567
Project: Kylin
Issue Type: Improvement
Components: Measure - TopN
Reporter: Guangxu Cheng
Assignee: Guangxu Cheng
We have a cube that needs to calculate the TOPN of 13 columns. The number of
data source is only 500k. But, the cubing job always fail when building base
cuboid.
we found that the map task always killed by the ApplicationMaster due to time
out
{noformat}
ERROR-[-10001]-[MR]:[Mr Task
Timeout]:[AttemptID:attempt_1591996262448_229922_m_000000_1 Timed out after
3600 secs!] ERROR-[-10015]-[MR]:[Container Exit Accidentally]:[Container killed
by the ApplicationMaster. Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143 ]
{noformat}
the stack information as below:
{noformat}
"SpillThread" #35 daemon prio=5 os_prio=0 tid=0x00007f9a89771800 nid=0x133a2
runnable [0x00007f9a56e3f000]
java.lang.Thread.State: RUNNABLE
at java.util.LinkedList.toArray(LinkedList.java:1052)
at java.util.List.sort(List.java:477)
at java.util.Collections.sort(Collections.java:175)
at
org.apache.kylin.measure.topn.TopNCounter.sortAndRetain(TopNCounter.java:96)
at org.apache.kylin.measure.topn.TopNCounter.merge(TopNCounter.java:183)
at
org.apache.kylin.measure.topn.TopNAggregator.aggregate(TopNAggregator.java:44)
at
org.apache.kylin.measure.topn.TopNAggregator.aggregate(TopNAggregator.java:27)
at
org.apache.kylin.measure.MeasureAggregators.aggregate(MeasureAggregators.java:83)
at
org.apache.kylin.engine.mr.steps.CuboidReducer.doReduce(CuboidReducer.java:108)
at
org.apache.kylin.engine.mr.steps.CuboidReducer.doReduce(CuboidReducer.java:44)
at org.apache.kylin.engine.mr.KylinReducer.reduce(KylinReducer.java:77)
at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:171)
at
org.apache.hadoop.mapred.Task$NewCombinerRunner.combine(Task.java:1688)
at
org.apache.hadoop.mapred.MapTask$MapOutputBuffer.sortAndSpill(MapTask.java:1645)
at
org.apache.hadoop.mapred.MapTask$MapOutputBuffer.access$900(MapTask.java:884)
at
org.apache.hadoop.mapred.MapTask$MapOutputBuffer$SpillThread.run(MapTask.java:1540)
{noformat}
>From the stack information, we found that sorting takes a lot of time. After
>merge another counter into this counter, need to re-sort this counter. Maybe
>we can reduce the frequency of sorting
--
This message was sent by Atlassian Jira
(v8.3.4#803005)