You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2015/03/17 04:11:04 UTC
ambari git commit: AMBARI-10097. Low memory setting on phoenix client
leads to perf degradation. (swagle)
Repository: ambari
Updated Branches:
refs/heads/branch-2.0.0 e796be667 -> e35afcaa5
AMBARI-10097. Low memory setting on phoenix client leads to perf degradation. (swagle)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e35afcaa
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e35afcaa
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e35afcaa
Branch: refs/heads/branch-2.0.0
Commit: e35afcaa553dafecae27d861bf439fffed5aab4e
Parents: e796be6
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Mon Mar 16 18:34:01 2015 -0700
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Mon Mar 16 20:10:57 2015 -0700
----------------------------------------------------------------------
.../metrics/timeline/PhoenixHBaseAccessor.java | 2 +-
.../0.1.0/configuration/ams-hbase-site.xml | 16 ++++++++++++++
.../0.1.0/configuration/ams-site.xml | 17 +++++++++++++++
.../AMBARI_METRICS/0.1.0/package/scripts/ams.py | 13 ++++++++++++
.../0.1.0/package/scripts/hbase.py | 11 ++++++++++
.../0.1.0/package/scripts/params.py | 7 +++++++
.../stacks/HDP/2.0.6/services/stack_advisor.py | 22 +++++++++++++-------
.../stacks/2.2/common/test_stack_advisor.py | 4 ++--
8 files changed, 81 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/e35afcaa/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
index e40a115..6a38517 100644
--- a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
+++ b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
@@ -575,7 +575,7 @@ public class PhoenixHBaseAccessor {
}
}
- LOG.info("Aggregate records size: " + metrics.getMetrics().size());
+ LOG.debug("Aggregate records size: " + metrics.getMetrics().size());
return metrics;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/e35afcaa/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-hbase-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-hbase-site.xml b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-hbase-site.xml
index 940d7af..2d11412 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-hbase-site.xml
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-hbase-site.xml
@@ -277,4 +277,20 @@
Controls the number of pre-allocated regions for SYSTEM.SEQUENCE table.
</description>
</property>
+ <property>
+ <name>phoenix.query.maxGlobalMemoryPercentage</name>
+ <value>15</value>
+ <description>
+ Percentage of total heap memory (i.e. Runtime.getRuntime().maxMemory())
+ that all threads may use.
+ </description>
+ </property>
+ <property>
+ <name>phoenix.spool.directory</name>
+ <value>${hbase.tmp.dir}/phoenix-spool</value>
+ <description>
+ Set directory for Phoenix spill files. If possible set this to a
+ different mount point from the one for hbase.rootdir in embedded mode.
+ </description>
+ </property>
</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/e35afcaa/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml
index d3da1af..fa85556 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml
@@ -231,4 +231,21 @@
JDBC resultset prefect size for aggregator queries.
</description>
</property>
+ <!-- Phoenix properties that would manifest in the hbase-site.xml on the client side -->
+ <property>
+ <name>phoenix.query.maxGlobalMemoryPercentage</name>
+ <value>25</value>
+ <description>
+ Percentage of total heap memory (i.e. Runtime.getRuntime().maxMemory())
+ that all threads may use.
+ </description>
+ </property>
+ <property>
+ <name>phoenix.spool.directory</name>
+ <value>/tmp</value>
+ <description>
+ Set directory for Phoenix spill files. If possible set this to a
+ different mount point from the one for hbase.rootdir in embedded mode.
+ </description>
+ </property>
</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/e35afcaa/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py
index 27d24de..68ee119 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py
@@ -142,6 +142,10 @@ def ams(name=None):
if params.security_enabled:
merged_ams_hbase_site.update(params.config['configurations']['ams-hbase-security-site'])
+ # Add phoenix client side overrides
+ merged_ams_hbase_site['phoenix.query.maxGlobalMemoryPercentage'] = str(params.phoenix_max_global_mem_percent)
+ merged_ams_hbase_site['phoenix.spool.directory'] = params.phoenix_client_spool_dir
+
XmlConfig( "hbase-site.xml",
conf_dir = params.ams_collector_conf_dir,
configurations = merged_ams_hbase_site,
@@ -188,6 +192,15 @@ def ams(name=None):
mode=0755
)
+ # Phoenix spool file dir if not /tmp
+ if not os.path.exists(params.phoenix_client_spool_dir):
+ Directory(params.phoenix_client_spool_dir,
+ owner=params.ams_user,
+ mode = 0755,
+ group=params.user_group,
+ cd_access="a",
+ recursive=True
+ )
pass
elif name == 'monitor':
http://git-wip-us.apache.org/repos/asf/ambari/blob/e35afcaa/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py
index f488308..8c8f85a 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py
@@ -129,6 +129,17 @@ def hbase(name=None # 'master' or 'regionserver' or 'client'
group = params.user_group
)
+ # Phoenix spool file dir if not /tmp
+ if not os.path.exists(params.phoenix_server_spool_dir):
+ Directory(params.phoenix_server_spool_dir,
+ owner=params.ams_user,
+ mode = 0755,
+ group=params.user_group,
+ cd_access="a",
+ recursive=True
+ )
+ pass
+
if 'ams-hbase-policy' in params.config['configurations']:
XmlConfig("hbase-policy.xml",
conf_dir = params.hbase_conf_dir,
http://git-wip-us.apache.org/repos/asf/ambari/blob/e35afcaa/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py
index 77b5ec1..ab8b56a 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py
@@ -94,6 +94,13 @@ hbase_tmp_dir = config['configurations']['ams-hbase-site']['hbase.tmp.dir']
_local_dir_conf = default('/configurations/ams-hbase-site/hbase.local.dir', "${hbase.tmp.dir}/local")
local_dir = substitute_vars(_local_dir_conf, config['configurations']['ams-hbase-site'])
+phoenix_max_global_mem_percent = default('/configurations/ams-site/phoenix.query.maxGlobalMemoryPercentage', '20')
+phoenix_client_spool_dir = default('/configurations/ams-site/phoenix.spool.directory', '/tmp')
+phoenix_server_spool_dir = default('/configurations/ams-hbase-site/phoenix.spool.directory', '/tmp')
+# Substitute vars if present
+phoenix_client_spool_dir = substitute_vars(phoenix_client_spool_dir, config['configurations']['ams-hbase-site'])
+phoenix_server_spool_dir = substitute_vars(phoenix_server_spool_dir, config['configurations']['ams-hbase-site'])
+
client_jaas_config_file = format("{hbase_conf_dir}/hbase_client_jaas.conf")
master_jaas_config_file = format("{hbase_conf_dir}/hbase_master_jaas.conf")
regionserver_jaas_config_file = format("{hbase_conf_dir}/hbase_regionserver_jaas.conf")
http://git-wip-us.apache.org/repos/asf/ambari/blob/e35afcaa/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py
index 6ee60cf..a933d98 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py
@@ -135,9 +135,10 @@ class HDP206StackAdvisor(DefaultStackAdvisor):
amsCollectorHosts = self.getComponentHostNames(services, "AMBARI_METRICS", "METRICS_COLLECTOR")
putHbaseEnvProperty("hbase_regionserver_heapsize", "1024m")
+ # blockCache = 0.3, memstore = 0.35, phoenix-server = 0.15, phoenix-client = 0.25
putAmsHbaseSiteProperty("hfile.block.cache.size", 0.3)
- putAmsHbaseSiteProperty("hbase.regionserver.global.memstore.upperLimit", 0.5)
- putAmsHbaseSiteProperty("hbase.regionserver.global.memstore.lowerLimit", 0.4)
+ putAmsHbaseSiteProperty("hbase.regionserver.global.memstore.upperLimit", 0.35)
+ putAmsHbaseSiteProperty("hbase.regionserver.global.memstore.lowerLimit", 0.3)
putTimelineServiceProperty("timeline.metrics.host.aggregator.ttl", 86400)
# TODO recommend configuration for multiple AMBARI_METRICS collectors
@@ -145,23 +146,28 @@ class HDP206StackAdvisor(DefaultStackAdvisor):
pass
else:
totalHostsCount = len(hosts["items"])
- if totalHostsCount > 400:
+ # blockCache = 0.3, memstore = 0.3, phoenix-server = 0.2, phoenix-client = 0.3
+ if totalHostsCount >= 400:
putHbaseEnvProperty("hbase_master_heapsize", "12288m")
- putAmsEnvProperty("metrics_collector_heapsize", "4096m")
+ putAmsEnvProperty("metrics_collector_heapsize", "8192m")
putAmsHbaseSiteProperty("hbase.regionserver.handler.count", 60)
putAmsHbaseSiteProperty("hbase.regionserver.hlog.blocksize", 134217728)
putAmsHbaseSiteProperty("hbase.regionserver.maxlogs", 64)
putAmsHbaseSiteProperty("hbase.hregion.memstore.flush.size", 268435456)
- elif totalHostsCount > 100:
+ putAmsHbaseSiteProperty("hbase.regionserver.global.memstore.upperLimit", 0.3)
+ putAmsHbaseSiteProperty("hbase.regionserver.global.memstore.lowerLimit", 0.25)
+ putAmsHbaseSiteProperty("phoenix.query.maxGlobalMemoryPercentage", 20)
+ putTimelineServiceProperty("phoenix.query.maxGlobalMemoryPercentage", 30)
+ elif totalHostsCount >= 100:
putHbaseEnvProperty("hbase_master_heapsize", "6144m")
- putAmsEnvProperty("metrics_collector_heapsize", "2048m")
+ putAmsEnvProperty("metrics_collector_heapsize", "4096m")
putAmsHbaseSiteProperty("hbase.regionserver.handler.count", 60)
putAmsHbaseSiteProperty("hbase.regionserver.hlog.blocksize", 134217728)
putAmsHbaseSiteProperty("hbase.regionserver.maxlogs", 64)
putAmsHbaseSiteProperty("hbase.hregion.memstore.flush.size", 268435456)
- elif totalHostsCount > 50:
+ elif totalHostsCount >= 50:
putHbaseEnvProperty("hbase_master_heapsize", "2048m")
- putAmsEnvProperty("metrics_collector_heapsize", "1024m")
+ putAmsEnvProperty("metrics_collector_heapsize", "2048m")
else:
putHbaseEnvProperty("hbase_master_heapsize", "1024m")
putAmsEnvProperty("metrics_collector_heapsize", "512m")
http://git-wip-us.apache.org/repos/asf/ambari/blob/e35afcaa/ambari-server/src/test/python/stacks/2.2/common/test_stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.2/common/test_stack_advisor.py b/ambari-server/src/test/python/stacks/2.2/common/test_stack_advisor.py
index 2dafb67..33bac19 100644
--- a/ambari-server/src/test/python/stacks/2.2/common/test_stack_advisor.py
+++ b/ambari-server/src/test/python/stacks/2.2/common/test_stack_advisor.py
@@ -684,8 +684,8 @@ class TestHDP22StackAdvisor(TestCase):
},
"ams-hbase-site": {
"properties": {
- "hbase.regionserver.global.memstore.lowerLimit": "0.4",
- "hbase.regionserver.global.memstore.upperLimit": "0.5",
+ "hbase.regionserver.global.memstore.lowerLimit": "0.3",
+ "hbase.regionserver.global.memstore.upperLimit": "0.35",
"hfile.block.cache.size": "0.3"
}
},