----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/47506/ -----------------------------------------------------------
Review request for Ambari, Alejandro Fernandez and Sumit Mohanty. Bugs: AMBARI-16720 and AMBARI-16722 https://issues.apache.org/jira/browse/AMBARI-16720 https://issues.apache.org/jira/browse/AMBARI-16722 Repository: ambari Description ------- - AMBARI-16720. Update calculation logic for LLAP configs. - AMBARI-16722. Change 'Number of LLAP Daemons', 'In-Memory Cache per Daemon', 'Maximum CPUs per Daemon' to be a 'Text Box' and 'YARN Memory per Daemon' to be a 'Label' instead of 'Slider'. AMBARI-16720 - Following properties can/will get updated based on what triggered the calculation. ------------------------------------------------------------------------------------------------ - LLAP concurrency - hive-interactive-site/hive.server2.tez.sessions.per.default.queue - Number of LLAP nodes used - hive-interactive-env/num_llap_nodes - LLAP YARN container Size (in MB) - hive-interactive-site/hive.llap.daemon.yarn.container.mb - Number of Executors in container - hive-interactive-site/hive.llap.daemon.num.executors - Cache Per node - hive-interactive-site/hive.llap.io.memory.size - Property related to cache calculation above - hive-interactive-site/hive.llap.io.enabled - LLAP Heap size per node - hive-interactive-env/llap_heap_size - Slider App Master Container Size - hive-interactive-env/slider_am_container_size The trigger point for updating LLAP configs (mentioned above) is change in values of any of the following: (1). 'enable_hive_interactive' set to 'true' (2). 'llap_queue_capacity' (3). 'hive.server2.tez.sessions.per.default.queue' (4). 'llap' named queue getting selected for config 'hive.llap.daemon.queue.name' and only 2 queues exist ('llap' and 'default') at root level. - If change in value for 'llap_queue_capacity' or 'hive.server2.tez.sessions.per.default.queue' is detected, that config value is not calulated, but read and use in calculation for dependent configs. - If at any point of time, calulation cant be done (mostly because dependent config can't be retrieved or LLAP queue capacity is not good enough), the value for configs are set to their minimum or default values. A user can retrigger the calulation by sliding the "% of cluster capacity" slider. Further, as part of 'AMBARI-16722', following configs have been made a Text box instead of Slider earlier: - hive-interactive-env/num_llap_nodes - hive-interactive-site/hive.llap.io.memory.size - hive-interactive-site/hive.llap.daemon.num.executors Following configs has been converted to a Label instead of a Slider earlier: - hive-interactive-site/hive.llap.daemon.yarn.container.mb ----------------------------------- Brief on calculations is as follows : ----------------------------------- LLAP concurrency: ---------------- Calulated if this is not the driver for calculation, otherwise current value is read. = 25% of LLAP queue size / 'Tez AM container Size' based on YARN min container size Slider App Master Container Size: -------------------------------- = Caluclated value lies b/w 256-1024 MB based on it's own value and YARN min container size. total_am_capacity_required = normalized value of 'tez_am_container_size' based on YARN min container size * llap_concurrency + Slider App Master Container Size cap_available_for_daemons = total_llap_queue_size - total_am_capacity_required Number of LLAP nodes used: ------------------------- = Normalized value of 'cap_available_for_daemons / yarn_nm_mem_in_mb' based on YARN min container size. LLAP YARN container Size: ------------------------ if Number of LLAP nodes used < 1.00: = Normalized value of 'cap_available_for_daemons' based on YARN min container size. else = Normalized value of 'yarn_nm_mem_in_mb' based on YARN min container size. Number of Executors in container: -------------------------------- = minimum (LLAP YARN container Size / hive_tez_container_size, Number of CPU's per Node Manager Host). total Mem for Executors = Number of Executors in container * Read value of hive_tez_container_size Cache Per node : -------------- = LLAP YARN container Size - total Mem for Executors. hive-interactive-site/hive.llap.io.enabled set to 'false' if 'Cache Per node' < 64, else 'true'. LLAP Heap size per node: ----------------------- = maximum (total Mem for Executors * 0.8, total Mem for Executors - 1024) Diffs ----- ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/configuration/hive-interactive-env.xml fffcd03 ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/configuration/hive-interactive-site.xml 10518dc ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/themes/theme.json 90b89f0 ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py 689e1fd ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py cf82a9c Diff: https://reviews.apache.org/r/47506/diff/ Testing ------- Yes. - Python UT's added. Thanks, Swapan Shridhar