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  


Reply via email to