Puppet Class: bigtop::hadoop::resourcemanager

Defined in:
modules/bigtop/manifests/hadoop/resourcemanager.pp

Overview

SPDX-License-Identifier: Apache-2.0

Class bigtop::hadoop::resourcemanager

Installs and configures Hadoop YARN ResourceManager. This will create YARN HDFS directories.

Parameters:

  • excluded_hosts (Any) (defaults to: [])


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'modules/bigtop/manifests/hadoop/resourcemanager.pp', line 6

class bigtop::hadoop::resourcemanager(
    $excluded_hosts = [],
) {

    Class['bigtop::hadoop'] -> Class['bigtop::hadoop::resourcemanager']

    file { "${::bigtop::hadoop::config_directory}/yarn-hosts.exclude":
        ensure  => present,
        content => template('bigtop/hadoop/hosts.exclude.erb'),
        notify  => Exec['hadoop-yarn-refresh-nodes'],
    }

    # In an HA YARN ResourceManager setup, this class will be included on multiple nodes.
    # In order to have this directory check performed by only one resourcemanager,
    # we only use it on the first node in the $resourcemanager_hosts array.
    # This means that the Hadoop Master NameNode must be the same node as the
    # Hadoop Master ResouceManager.
    if !$::bigtop::hadoop::yarn_ha_enabled or $::fqdn == $::bigtop::hadoop::primary_resourcemanager_host {
        # Create YARN HDFS directories.
        # See: http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH5/latest/CDH5-Installation-Guide/cdh5ig_yarn_cluster_deploy.html?scroll=topic_11_4_10_unique_1
        bigtop::hadoop::directory { '/var/log/hadoop-yarn':
            # sudo -u hdfs hdfs dfs -mkdir /var/log/hadoop-yarn
            # sudo -u hdfs hdfs dfs -chown yarn:mapred /var/log/hadoop-yarn
            owner   => 'yarn',
            group   => 'mapred',
            mode    => '0755',
            # Make sure HDFS directories are created before
            # resourcemanager is installed and started, but after
            # the namenode.
            require => [Service['hadoop-hdfs-namenode'], Bigtop::Hadoop::Directory['/var/log']],
            before  => Package['hadoop-yarn-resourcemanager'],
        }

        bigtop::hadoop::directory { '/user/yarn':
            owner   => 'yarn',
            group   => 'yarn',
            mode    => '0755',
            require => Bigtop::Hadoop::Directory['/user'],
        }

        bigtop::hadoop::directory { '/user/yarn/node-labels':
            owner   => 'yarn',
            group   => 'yarn',
            mode    => '0700',
            require => Bigtop::Hadoop::Directory['/user/yarn'],
            before  => Package['hadoop-yarn-resourcemanager'],
        }
    }

    package { 'hadoop-yarn-resourcemanager':
        ensure  => 'installed',
        require => User['yarn'],
    }

    service { 'hadoop-yarn-resourcemanager':
        ensure     => 'running',
        enable     => true,
        hasstatus  => true,
        hasrestart => true,
        alias      => 'resourcemanager',
        require    => Package['hadoop-yarn-resourcemanager'],
    }

    kerberos::exec { 'hadoop-yarn-refresh-nodes':
        command     => '/usr/bin/yarn rmadmin -refreshNodes',
        user        => 'yarn',
        refreshonly => true,
        require     => Service['hadoop-yarn-resourcemanager'],
    }
}