Ottomata has uploaded a new change for review.
https://gerrit.wikimedia.org/r/145675
Change subject: Add new 14 DataNode to Hadoop puppetization
......................................................................
Add new 14 DataNode to Hadoop puppetization
Also repurpose analytics1004 as Hadoop Standby NameNode.
Change-Id: I1a118b6184c69f5f134f2839e6165a62c9d108cb
---
M manifests/role/analytics/hadoop.pp
M manifests/site.pp
M templates/hadoop/net-topology.py.erb
3 files changed, 93 insertions(+), 53 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/75/145675/1
diff --git a/manifests/role/analytics/hadoop.pp
b/manifests/role/analytics/hadoop.pp
index f6f23f4..7f491b3 100644
--- a/manifests/role/analytics/hadoop.pp
+++ b/manifests/role/analytics/hadoop.pp
@@ -67,24 +67,45 @@
# JournalNodes are colocated on worker DataNodes.
$journalnode_hosts = [
'analytics1011.eqiad.wmnet', # Row A2
- 'analytics1014.eqiad.wmnet', # Row C7
+ 'analytics1028.eqiad.wmnet', # Row C2
'analytics1019.eqiad.wmnet', # Row D2
]
- $datanode_mounts = [
- "${hadoop_data_directory}/a",
- "${hadoop_data_directory}/b",
- "${hadoop_data_directory}/c",
- "${hadoop_data_directory}/d",
- "${hadoop_data_directory}/e",
- "${hadoop_data_directory}/f",
- "${hadoop_data_directory}/g",
- "${hadoop_data_directory}/h",
- "${hadoop_data_directory}/i",
- "${hadoop_data_directory}/j",
- "${hadoop_data_directory}/k",
- "${hadoop_data_directory}/l"
- ]
+ # analytics1011-analytics1020 have 12 mounts on disks sda - sdl.
+ if $::hostname ~= /analytics10(1[1-9]|20)/ {
+ $datanode_mounts = [
+ "${hadoop_data_directory}/a",
+ "${hadoop_data_directory}/b",
+ "${hadoop_data_directory}/c",
+ "${hadoop_data_directory}/d",
+ "${hadoop_data_directory}/e",
+ "${hadoop_data_directory}/f",
+ "${hadoop_data_directory}/g",
+ "${hadoop_data_directory}/h",
+ "${hadoop_data_directory}/i",
+ "${hadoop_data_directory}/j",
+ "${hadoop_data_directory}/k",
+ "${hadoop_data_directory}/l",
+ ]
+ }
+ # analytics1028-analytics1041 have mounts on disks sdb - sdm.
+ # (sda is hardware raid on the 2 2.5 drives in the flex bays.)
+ elsif $::hostname ~= /analytics10(2[89]|3[0-9]|4[01])/ {
+ $datanode_mounts = [
+ "${hadoop_data_directory}/b",
+ "${hadoop_data_directory}/c",
+ "${hadoop_data_directory}/d",
+ "${hadoop_data_directory}/e",
+ "${hadoop_data_directory}/f",
+ "${hadoop_data_directory}/g",
+ "${hadoop_data_directory}/h",
+ "${hadoop_data_directory}/i",
+ "${hadoop_data_directory}/j",
+ "${hadoop_data_directory}/k",
+ "${hadoop_data_directory}/l",
+ "${hadoop_data_directory}/m",
+ ]
+ }
$mapreduce_map_tasks_maximum = ($::processorcount - 2) / 2
$mapreduce_reduce_tasks_maximum = ($::processorcount - 2) / 2
@@ -101,8 +122,9 @@
$hadoop_heapsize = undef
$yarn_heapsize = undef
- $ganglia_host = 'aggregator.eqiad.wmflabs'
- $ganglia_port = 50090
+ # TODO: use variables from new ganglia module once it is finished.
+ $ganglia_host = '239.192.1.32'
+ $ganglia_port = 8649
}
# Configs specific to Labs.
@@ -152,9 +174,8 @@
$yarn_nodemanager_resource_memory_mb = undef
$net_topology_script_template = undef
- # TODO: use variables from new ganglia module once it is finished.
- $ganglia_host = '239.192.1.32'
- $ganglia_port = 8649
+ $ganglia_host = 'aggregator.eqiad.wmflabs'
+ $ganglia_port = 50090
}
}
diff --git a/manifests/site.pp b/manifests/site.pp
index 56b3528..405c0ea 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -114,28 +114,37 @@
include role::logging::udp2log::misc
}
-node 'analytics1004.eqiad.wmnet' {
- include standard
-
- # search-users using this node while it is idle
- # to do some elasticsearch testing.
- class { 'admin': groups => ['search-users'] }
- include role::analytics
-}
-
-
-# analytics1009 is the Hadoop standby NameNode
+# analytics1009 used to be the standby NameNode,
+# but during cluster reinstall in 2014-07, it
+# had an error when booting. analytics1004
+# has been repurposed as analytics standby NameNode.
node 'analytics1009.eqiad.wmnet' {
$nagios_group = 'analytics_eqiad'
# ganglia cluster name.
$cluster = 'analytics'
# analytics1009 is analytics Ganglia aggregator for Row A
- $ganglia_aggregator = true
+ # $ganglia_aggregator = true
+
+ # class { 'admin': groups => ['analytics-users'] }
+ include admin
+ include standard
+ # include role::analytics::hadoop::standby
+}
+
+
+
+
+# analytics1004 is the Hadoop standby NameNode
+# TODO: either fix analytics1009, or move this
+# node to Row A.
+node 'analytics1004.eqiad.wmnet' {
+ $nagios_group = 'analytics_eqiad'
+ # ganglia cluster name.
+ $cluster = 'analytics'
class { 'admin': groups => ['analytics-users'] }
include standard
- include role::analytics::kraken
include role::analytics::hadoop::standby
}
@@ -150,17 +159,18 @@
include standard
class { 'admin': groups => ['analytics-users'] }
- include role::analytics::kraken
+
include role::analytics::hadoop::master
}
-# analytics1011, analytics1013-analytics1017, analytics1019 and analytics1020
-# are Hadoop worker nodes.
+# analytics1011, analytics1013-analytics1017, analytics1019, analytics1020,
+# analytics1028-analytics1041 are Hadoop worker nodes.
+#
# NOTE: If you add, remove or move Hadoop nodes, you should edit
# templates/hadoop/net-topology.py.erb to make sure the
# hostname -> /datacenter/rack/row id is correct. This is
# used for Hadoop network topology awareness.
-node /analytics10(11|1[3-7]|19|20).eqiad.wmnet/ {
+node /analytics10(11|1[3-7]|19|2[089]|3[0-9]|4[01]).eqiad.wmnet/ {
$nagios_group = 'analytics_eqiad'
# ganglia cluster name.
$cluster = 'analytics'
@@ -170,7 +180,7 @@
}
include standard
class { 'admin': groups => ['analytics-users'] }
- include role::analytics::kraken
+
include role::analytics::hadoop::worker
}
@@ -219,27 +229,14 @@
include standard
class { 'admin': groups => ['analytics-users'] }
- include role::analytics::kraken
-
- # Including kraken import and hive partition cron jobs.
-
- # Imports pagecount files from dumps.wikimedia.org into Hadoop
- include role::analytics::kraken::jobs::import::pagecounts
- # Imports logs from Kafka into Hadoop (via Camus)
- include role::analytics::kraken::jobs::import::kafka
- # Creates hive partitions on all data in HDFS /wmf/data/external
- include role::analytics::kraken::jobs::hive::partitions::external
# Include analytics/refinery deployment target.
- # NOTE: refinery roles will soon replace kraken classes.
include role::analytics::refinery
- include role::analytics::refinery::data::drop
}
# analytics1027 hosts the frontend
# interfaces to Kraken and Hadoop.
# (Hue, Oozie, Hive, etc.)
-
node 'analytics1027.eqiad.wmnet' {
$nagios_group = 'analytics_eqiad'
# ganglia cluster name.
@@ -247,6 +244,7 @@
include standard
class { 'admin': groups => ['analytics-users'] }
+
include role::analytics::clients
include role::analytics::hive::server
include role::analytics::oozie::server
diff --git a/templates/hadoop/net-topology.py.erb
b/templates/hadoop/net-topology.py.erb
index 35f2698..c4a27f7 100755
--- a/templates/hadoop/net-topology.py.erb
+++ b/templates/hadoop/net-topology.py.erb
@@ -5,23 +5,44 @@
# Returns a rack/row name for the given node name.
# Usage:
-# net-topology.sh <ipaddr|fqdn>
+# net-topology.py <ipaddr|fqdn>
import socket
from sys import argv
# Maps fqdn to a unique /datacenter/rack/row id.
nodes = {
- 'analytics1009.eqiad.wmnet': '/eqiad/A/2',
+ 'analytics1004.eqiad.wmnet': '/eqiad/B/3',
'analytics1010.eqiad.wmnet': '/eqiad/B/3',
+
'analytics1011.eqiad.wmnet': '/eqiad/A/2',
'analytics1013.eqiad.wmnet': '/eqiad/A/2',
+
'analytics1014.eqiad.wmnet': '/eqiad/C/7',
'analytics1015.eqiad.wmnet': '/eqiad/C/7',
'analytics1016.eqiad.wmnet': '/eqiad/C/7',
'analytics1017.eqiad.wmnet': '/eqiad/C/7',
+
'analytics1019.eqiad.wmnet': '/eqiad/D/2',
'analytics1020.eqiad.wmnet': '/eqiad/D/2',
+
+ 'analytics1028.eqiad.wmnet': '/eqiad/C/2',
+ 'analytics1029.eqiad.wmnet': '/eqiad/C/2',
+ 'analytics1030.eqiad.wmnet': '/eqiad/C/2',
+ 'analytics1031.eqiad.wmnet': '/eqiad/C/2',
+
+ 'analytics1032.eqiad.wmnet': '/eqiad/C/3',
+ 'analytics1033.eqiad.wmnet': '/eqiad/C/3',
+ 'analytics1034.eqiad.wmnet': '/eqiad/C/3',
+
+ 'analytics1035.eqiad.wmnet': '/eqiad/D/2',
+ 'analytics1036.eqiad.wmnet': '/eqiad/D/2',
+ 'analytics1037.eqiad.wmnet': '/eqiad/D/2',
+
+ 'analytics1038.eqiad.wmnet': '/eqiad/D/4',
+ 'analytics1039.eqiad.wmnet': '/eqiad/D/4',
+ 'analytics1040.eqiad.wmnet': '/eqiad/D/4',
+ 'analytics1041.eqiad.wmnet': '/eqiad/D/4'
}
if len(argv) < 2:
--
To view, visit https://gerrit.wikimedia.org/r/145675
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1a118b6184c69f5f134f2839e6165a62c9d108cb
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Ottomata <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits