Hi Gopal , >I still do not understand the "only" mode. In the "only" mode, where the query >fragment run, LLAP daemon or tez container? >I change the execution mode from "all" to "only" and disable the >HybridGraceHashJoin. The execution time of q1 from 76s to 456s. Now, in "all" mode , we set the llap container size to 210g(llap java heap size:180g, cache size:20g). If we change to "only" mode, Whether we change the llap container size? And do you have some recommended value?
Regards, Ke -----Original Message----- From: Gopal Vijayaraghavan [mailto:gop...@apache.org] Sent: Saturday, November 25, 2017 3:39 AM To: user@hive.apache.org Subject: Re: Hive +Tez+LLAP does not have obvious performance improvement than HIVE + Tez Hi, > In our test, we found the shuffle stage of LLAP is very slow. Whether need to > configure some related shuffle value or not? Shuffle is the one hit by the 2nd, 3rd and 4th resource starvation issues listed earlier (FDs, somaxconn & DNS UDP packet loss). > And we get the following log from the LLAP daemon in shuffle stage: > 2017-11-23T12:48:40,718 INFO [New I/O worker #128 ()] > org.apache.hadoop.hive.llap.shufflehandler.ShuffleHandler: Setting connection > close header... This is from a Tez setting (& is unexpected with LLAP). Enable keep-alive on the Tez client-side https://github.com/t3rmin4t0r/tez-autobuild/blob/llap/tez-site.xml.frag#L171 FYI, the whole autobuild repo was made to allow easy rebuilding of Hive-LLAP with some sort of basic settings for a machine with 256Gb RAM & 32 HT cores. > Now " hive.llap.execution.mode" have "auto,none,all,map,only" mode. About the > four mode, do you have some suggestions? Whether the "all" mode can gain the > best performance or not? And how the "auto" and "only" mode work? The fastest mode is "only" - "auto" was designed for hybrid execution of ETL queries (i.e small tasks run in LLAP, large tasks run in Tez) & slows down BI queries (i.e slower queries, higher throughput, assuming bulk ETL). The "all" model was designed to throw as much work into LLAP as possible, without failing queries. The trouble with this mode is that the performance of queries will be unpredictable, if some part of them falls out of LLAP. The "only" mode fails those queries, so that you can report a bug or at least, know that the performance loss is because LLAP is not active. Once you switch to the "only" mode, it is a good idea to disable the HybridGraceHashJoin, to get much more performance out of the engine. Because the HybridGrace is a stateful hashtable, it produces 1 hashtable per-thread to avoid race conditions, while disabling it produces 1 read-only stateless hashtable which ends up being interleaved across all NUMA zones, but built exactly once per LLAP daemon. This will cause a reduction in CPU usage (which is a good thing, unlike the lock starvation problems). Cheers, Gopal