Elukey has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/395527 )
Change subject: role::analytics_cluster::hive/oozie: move to profiles
......................................................................
role::analytics_cluster::hive/oozie: move to profiles
Bug: T167790
Change-Id: I21eafba18d6825c1c75f06ee918287249546b7e6
---
D hieradata/common/cdh/hive.yaml
D hieradata/common/cdh/oozie.yaml
D hieradata/common/cdh/oozie/server.yaml
M hieradata/common/profile/hive/client.yaml
A hieradata/common/profile/hive/metastore/database.yaml
A hieradata/common/profile/oozie/client.yaml
M hieradata/role/common/analytics_cluster/coordinator.yaml
R modules/profile/manifests/analytics/database/meta.pp
M modules/profile/manifests/hive/client.pp
R modules/profile/manifests/hive/metastore.pp
R modules/profile/manifests/hive/metastore/database.pp
R modules/profile/manifests/hive/server.pp
M modules/profile/manifests/oozie/client.pp
R modules/profile/manifests/oozie/server.pp
R modules/profile/manifests/oozie/server/database.pp
M modules/role/manifests/analytics_cluster/coordinator.pp
16 files changed, 84 insertions(+), 72 deletions(-)
Approvals:
Elukey: Looks good to me, approved
jenkins-bot: Verified
diff --git a/hieradata/common/cdh/hive.yaml b/hieradata/common/cdh/hive.yaml
deleted file mode 100644
index bbff820..0000000
--- a/hieradata/common/cdh/hive.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# Analytics Cluster Hive Configuration
-#
-cdh::hive::metastore_host: analytics1003.eqiad.wmnet
-
-# The WMF webrequest table uses HCatalog's JSON Serde.
-# Automatically include this in Hive client classpaths.
-cdh::hive::auxpath:
file:///usr/lib/hive-hcatalog/share/hcatalog/hive-hcatalog-core.jar
-
-# Following Cloudera recommandations for ~20 users
-cdh::hive::hive_metastore_opts: '-Xms4g -Xmx10g'
-cdh::hive::hive_server_opts: '-Xms4g -Xmx6g'
\ No newline at end of file
diff --git a/hieradata/common/cdh/oozie.yaml b/hieradata/common/cdh/oozie.yaml
deleted file mode 100644
index 3f1fb38..0000000
--- a/hieradata/common/cdh/oozie.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Analytics Cluster Oozie Configuration
-#
-
-cdh::oozie::oozie_host: analytics1003.eqiad.wmnet
\ No newline at end of file
diff --git a/hieradata/common/cdh/oozie/server.yaml
b/hieradata/common/cdh/oozie/server.yaml
deleted file mode 100644
index e43a455..0000000
--- a/hieradata/common/cdh/oozie/server.yaml
+++ /dev/null
@@ -1 +0,0 @@
-cdh::oozie::server::heapsize: 2048
diff --git a/hieradata/common/profile/hive/client.yaml
b/hieradata/common/profile/hive/client.yaml
index b29187f..566e8f3 100644
--- a/hieradata/common/profile/hive/client.yaml
+++ b/hieradata/common/profile/hive/client.yaml
@@ -3,4 +3,9 @@
# check/modify.
profile::hive::client::zookeeper_cluster_name: main-eqiad
profile::hive::client::server_host: analytics1003.eqiad.wmnet
-profile::hive::client::server_port: 10000
\ No newline at end of file
+profile::hive::client::server_port: 10000
+profile::hive::client::metastore_host: 'analytics1003.eqiad.wmnet'
+
+# The WMF webrequest table uses HCatalog's JSON Serde.
+# Automatically include this in Hive client classpaths.
+profile::hive::client::auxpath:
'file:///usr/lib/hive-hcatalog/share/hcatalog/hive-hcatalog-core.jar'
\ No newline at end of file
diff --git a/hieradata/common/profile/hive/metastore/database.yaml
b/hieradata/common/profile/hive/metastore/database.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/hieradata/common/profile/hive/metastore/database.yaml
diff --git a/hieradata/common/profile/oozie/client.yaml
b/hieradata/common/profile/oozie/client.yaml
new file mode 100644
index 0000000..bbe593b
--- /dev/null
+++ b/hieradata/common/profile/oozie/client.yaml
@@ -0,0 +1 @@
+profile::oozie::client::oozie_host: 'analytics1003.eqiad.wmnet'
\ No newline at end of file
diff --git a/hieradata/role/common/analytics_cluster/coordinator.yaml
b/hieradata/role/common/analytics_cluster/coordinator.yaml
index 6a89e1b..582d9cc 100644
--- a/hieradata/role/common/analytics_cluster/coordinator.yaml
+++ b/hieradata/role/common/analytics_cluster/coordinator.yaml
@@ -1,3 +1,13 @@
standard::has_ganglia: false
# Periodical backups of the analytics-meta mysql database.
profile::analytics::database::meta::backup::rsync_dest:
'analytics1002.eqiad.wmnet::backup/mysql/analytics-meta'
+
+profile::hive::server::monitoring_enabled: true
+profile::hive::metastore::monitoring_enabled: true
+profile::analytics::database::meta::monitoring_enabled: true
+profile::oozie::server::monitoring_enabled: true
+
+# Following Cloudera recommandations for ~20 users
+profile::hive::client::hive_metastore_opts: '-Xms4g -Xmx10g'
+profile::hive::client::hive_server_opts: '-Xms4g -Xmx6g'
+profile::oozie::server::jvm_heap_size: 2048
\ No newline at end of file
diff --git a/modules/role/manifests/analytics_cluster/database/meta.pp
b/modules/profile/manifests/analytics/database/meta.pp
similarity index 91%
rename from modules/role/manifests/analytics_cluster/database/meta.pp
rename to modules/profile/manifests/analytics/database/meta.pp
index d7ddbaa..bcda89e 100644
--- a/modules/role/manifests/analytics_cluster/database/meta.pp
+++ b/modules/profile/manifests/analytics/database/meta.pp
@@ -1,12 +1,15 @@
# == Class role::analytics_cluster::database::meta
+#
# Installs a MySQL/MariaDB server for use with Hive and Oozie
# and other Analytics Cluster services.
#
-class role::analytics_cluster::database::meta {
+class profile::analytics::database::meta(
+ $monitoring_enabled =
hiera('profile::analytics::database::meta::monitoring_enabled'),
+) {
# Some CDH database init scripts need Java to run.
require ::profile::java::analytics
- include ::mariadb::packages_wmf
+ class { '::mariadb::packages_wmf': }
$config_template = $::realm ? {
# Production instance has large innodb_buffer_pool_size.
@@ -52,7 +55,7 @@
}
# Include icinga alerts if production realm.
- if $::realm == 'production' {
+ if $monitoring_enabled {
nrpe::monitor_service { 'mysql_analytics-meta':
description => 'analytics-meta MySQL instance',
nrpe_command => '/usr/lib/nagios/plugins/check_procs -c 1:1 -C
mysqld',
diff --git a/modules/profile/manifests/hive/client.pp
b/modules/profile/manifests/hive/client.pp
index c02b370..b8edb60 100644
--- a/modules/profile/manifests/hive/client.pp
+++ b/modules/profile/manifests/hive/client.pp
@@ -7,16 +7,16 @@
$zookeeper_cluster_name =
hiera('profile::hive::client::zookeeper_cluster_name'),
$hiveserver_host = hiera('profile::hive::client::server_host'),
$hiveserver_port = hiera('profile::hive::client::server_port'),
+ $metastore_host =
hiera('profile::hive::client::hive_metastore_host'),
+ $hive_server_opts = hiera('profile::hive::client::hive_server_opts',
undef),
+ $hive_metastore_opts =
hiera('profile::hive::client::hive_metastore_opts', undef),
) {
require ::profile::hadoop::common
# The WMF webrequest table uses HCatalog's JSON Serde.
# Automatically include this in Hive client classpaths.
$hcatalog_jar =
'file:///usr/lib/hive-hcatalog/share/hcatalog/hive-hcatalog-core.jar'
-
$auxpath = $hcatalog_jar
-
-
$zookeeper_hosts =
keys($zookeeper_clusters[$zookeeper_cluster_name]['hosts'])
# You must set at least:
@@ -35,6 +35,9 @@
auxpath => $auxpath,
# default to using Snappy for parquet formatted tables
parquet_compression => 'SNAPPY',
+ hive_server_opts => $hive_server_opts,
+ hive_metastore_opts => $hive_metastore_opts,
+ metastore_host => $metastore_host,
}
# Set up a wrapper script for beeline, the command line
diff --git a/modules/role/manifests/analytics_cluster/hive/metastore.pp
b/modules/profile/manifests/hive/metastore.pp
similarity index 69%
rename from modules/role/manifests/analytics_cluster/hive/metastore.pp
rename to modules/profile/manifests/hive/metastore.pp
index 49cf76c..832094a 100644
--- a/modules/role/manifests/analytics_cluster/hive/metastore.pp
+++ b/modules/profile/manifests/hive/metastore.pp
@@ -1,11 +1,12 @@
-# == Class role::analytics_cluster::hive::metastore
+# == Class profile::hive::metastore
+#
# Sets up Hive Metastore service
#
-# filtertags: labs-project-analytics labs-project-math
-class role::analytics_cluster::hive::metastore {
- system::role { 'analytics_cluster::hive::metastore':
- description => 'hive-metastore service',
- }
+class profile::hive::metastore(
+ $monitoring_enabled =
hiera('profile::hive::metastore::monitoring_enabled', false),
+ $statsd = hiera('statsd'),
+) {
+
require ::profile::hive::client
# Setup hive-metastore
@@ -13,7 +14,7 @@
# Use jmxtrans for sending metrics
class { '::cdh::hive::jmxtrans::metastore':
- statsd => hiera('statsd'),
+ statsd => $statsd,
}
ferm::service{ 'hive_metastore':
@@ -23,7 +24,7 @@
}
# Include icinga alerts if production realm.
- if $::realm == 'production' {
+ if $monitoring_enabled {
nrpe::monitor_service { 'hive-metasore':
description => 'Hive Metastore',
nrpe_command => '/usr/lib/nagios/plugins/check_procs -c 1:1 -C
java -a "org.apache.hadoop.hive.metastore.HiveMetaStore"',
diff --git
a/modules/role/manifests/analytics_cluster/hive/metastore/database.pp
b/modules/profile/manifests/hive/metastore/database.pp
similarity index 82%
rename from modules/role/manifests/analytics_cluster/hive/metastore/database.pp
rename to modules/profile/manifests/hive/metastore/database.pp
index fbf3d14..8e9d3bb 100644
--- a/modules/role/manifests/analytics_cluster/hive/metastore/database.pp
+++ b/modules/profile/manifests/hive/metastore/database.pp
@@ -1,4 +1,5 @@
-# == Class role::analytics_cluster::hive::metastore::database
+# == Class profile::hive::metastore::database
+#
# Includes the role::analytics_cluster::database::meta class
# to install a database for analytics cluster meta data,
# includes the cdh::hive::metastore::mysql
@@ -6,10 +7,10 @@
# and then finally ensures grants and permissions are
# set so that configured hosts can properly connect to this database.
#
-# filtertags: labs-project-analytics labs-project-math
-class role::analytics_cluster::hive::metastore::database {
+class profile::hive::metastore::database {
# Install a database server (MariaDB)
- require ::role::analytics_cluster::database::meta
+ require ::profile::analytics::database::meta
+
# Need to have hive package installed to
# get /usr/lib/hive/bin/schematool.
# require ::profile::hive::client
@@ -22,9 +23,8 @@
# cd /usr/lib/hive/scripts/metastore/upgrade/mysql && sudo mysql
hive_metastore < hive-schema-1.1.0.mysql.sql
# after cdh::hive::metastore::mysql makes puppet fail.
-
class { '::cdh::hive::metastore::mysql':
- require => Class['role::analytics_cluster::database::meta'],
+ require => Class['profile::analytics::database::meta'],
}
# cdh::hive::metastore::mysql only ensures that
diff --git a/modules/role/manifests/analytics_cluster/hive/server.pp
b/modules/profile/manifests/hive/server.pp
similarity index 63%
rename from modules/role/manifests/analytics_cluster/hive/server.pp
rename to modules/profile/manifests/hive/server.pp
index ad6c730..658800c 100644
--- a/modules/role/manifests/analytics_cluster/hive/server.pp
+++ b/modules/profile/manifests/hive/server.pp
@@ -1,19 +1,19 @@
-# == Class role::analytics_cluster::hive::server
-# Sets up Hive Server2
+# == Class profile::hive::server
#
-# filtertags: labs-project-analytics labs-project-math
-class role::analytics_cluster::hive::server {
- system::role { 'analytics_cluster::hive::server':
- description => 'hive-server2 service',
- }
- require ::profile::hive::client
+# Sets up Hive Server2 (no metastore, needs another profile).
+#
+class profile::hive::server(
+ $monitoring_enabled = hiera('profile::hive::server::monitoring_enabled',
false),
+ $statsd = hiera('statsd')
+) {
+ include ::profile::hive::client
# Setup hive-server
class { '::cdh::hive::server': }
# Use jmxtrans for sending metrics
class { '::cdh::hive::jmxtrans::server':
- statsd => hiera('statsd'),
+ statsd => $statsd,
}
ferm::service{ 'hive_server':
@@ -23,7 +23,7 @@
}
# Include icinga alerts if production realm.
- if $::realm == 'production' {
+ if $monitoring_enabled {
nrpe::monitor_service { 'hive-server2':
description => 'Hive Server',
nrpe_command => '/usr/lib/nagios/plugins/check_procs -c 1:1 -C
java -a "org.apache.hive.service.server.HiveServer2"',
diff --git a/modules/profile/manifests/oozie/client.pp
b/modules/profile/manifests/oozie/client.pp
index d3cf6fc..f63c81a 100644
--- a/modules/profile/manifests/oozie/client.pp
+++ b/modules/profile/manifests/oozie/client.pp
@@ -1,6 +1,9 @@
# == Class profile::oozie::client
#
-# filtertags: labs-project-math labs-project-analytics
-class profile::oozie::client {
- class { '::cdh::oozie': }
+class profile::oozie::client(
+ $oozie_host = hiera('profile::oozie::client::oozie_host'),
+) {
+ class { '::cdh::oozie':
+ oozie_host => $oozie_host,
+ }
}
\ No newline at end of file
diff --git a/modules/role/manifests/analytics_cluster/oozie/server.pp
b/modules/profile/manifests/oozie/server.pp
similarity index 83%
rename from modules/role/manifests/analytics_cluster/oozie/server.pp
rename to modules/profile/manifests/oozie/server.pp
index 59d4ecb..ee51854 100644
--- a/modules/role/manifests/analytics_cluster/oozie/server.pp
+++ b/modules/profile/manifests/oozie/server.pp
@@ -1,13 +1,11 @@
# == Class role::analytics_cluster::oozie::server
-# Installs Oozie server
-# Make sure you set hiera variables for cdh::oozie::server appropriately,
-# especially if you are hosting
#
-# filtertags: labs-project-analytics labs-project-math
-class role::analytics_cluster::oozie::server {
- system::role { 'analytics_cluster::oozie::server':
- description => 'Oozie Server',
- }
+# Installs the Oozie server.
+#
+class profile::oozie::server(
+ $monitoring_enabled = hiera('profile::oozie::server::monitoring_enabled',
false),
+ $jvm_heap_size = hiera('profile::oozie::server::jvm_heap_size', 1000),
+) {
require ::profile::oozie::client
# cdh::oozie::server will ensure that its MySQL DB is
@@ -29,6 +27,7 @@
# oozie.service.ProxyUserService.proxyuser.*
# settings look like they are properly configured.
authorization_service_authorization_enabled => false,
+ heapsize => $jvm_heap_size,
}
# Oozie is creating event logs in /var/log/oozie.
@@ -48,7 +47,7 @@
}
# Include icinga alerts if production realm.
- if $::realm == 'production' {
+ if $monitoring_enabled {
nrpe::monitor_service { 'oozie':
description => 'Oozie Server',
nrpe_command => '/usr/lib/nagios/plugins/check_procs -c 1:1 -C
java -a "org.apache.catalina.startup.Bootstrap"',
diff --git a/modules/role/manifests/analytics_cluster/oozie/server/database.pp
b/modules/profile/manifests/oozie/server/database.pp
similarity index 80%
rename from modules/role/manifests/analytics_cluster/oozie/server/database.pp
rename to modules/profile/manifests/oozie/server/database.pp
index 8b5df0c..dd55b7b 100644
--- a/modules/role/manifests/analytics_cluster/oozie/server/database.pp
+++ b/modules/profile/manifests/oozie/server/database.pp
@@ -1,4 +1,5 @@
-# == Class role::analytics_cluster::oozie::server::database
+# == Class profile::oozie::server::database
+#
# Includes the role::analytics_cluster::database::meta class
# to install a database for analytics cluster meta data,
# includes the cdh::oozie::database::mysql
@@ -6,14 +7,13 @@
# and then finally ensures grants and permissions are
# set so that configured hosts can properly connect to this database.
#
-# filtertags: labs-project-analytics labs-project-math
-class role::analytics_cluster::oozie::server::database {
+class profile::oozie::server::database {
# Install a database server (MariaDB)
- require ::role::analytics_cluster::database::meta
+ require ::profile::analytics::database::meta
# Ensure that the oozie db is created.
class { '::cdh::oozie::database::mysql':
- require => Class['role::analytics_cluster::database::meta'],
+ require => Class['profile::analytics::database::meta'],
}
# NOTE: on 2016-02-23, Otto and Joal
diff --git a/modules/role/manifests/analytics_cluster/coordinator.pp
b/modules/role/manifests/analytics_cluster/coordinator.pp
index cfd8a00..e0ff78a 100644
--- a/modules/role/manifests/analytics_cluster/coordinator.pp
+++ b/modules/role/manifests/analytics_cluster/coordinator.pp
@@ -17,21 +17,26 @@
# the Analytics Refinery.
#
class role::analytics_cluster::coordinator {
+
+ system::role { 'analytics_cluster::coordinator':
+ description => 'Analytics Cluster running various Hadoop services
(Hive, Camus, Oozie, ..)'
+ }
+
include ::role::analytics_cluster::client
- include ::role::analytics_cluster::database::meta
+ include ::profile::analytics::database::meta
# Back up analytics-meta MySQL instance
# to analytics1002.
include ::profile::analytics::database::meta::backup
# SQL-like queries to data stored in HDFS
- include ::role::analytics_cluster::hive::metastore
- include ::role::analytics_cluster::hive::server
- include ::role::analytics_cluster::hive::metastore::database
+ include ::profile::hive::metastore
+ include ::profile::hive::server
+ include ::profile::hive::metastore::database
# The Hadoop job scheduler
- include ::role::analytics_cluster::oozie::server
- include ::role::analytics_cluster::oozie::server::database
+ include ::profile::oozie::server
+ include ::profile::oozie::server::database
# Camus crons import data into
# from Kafka into HDFS.
--
To view, visit https://gerrit.wikimedia.org/r/395527
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I21eafba18d6825c1c75f06ee918287249546b7e6
Gerrit-PatchSet: 6
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Elukey <[email protected]>
Gerrit-Reviewer: Elukey <[email protected]>
Gerrit-Reviewer: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: Ottomata <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits