1 | class hadoop {
|
---|
2 |
|
---|
3 | exec { "download_hadoop":
|
---|
4 | # Download from nearby mirror, otherwise task can time-out
|
---|
5 | command => "wget -O /tmp/hadoop.tar.gz http://apache.mirror.amaze.com.au/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz",
|
---|
6 | # command => "wget -O /tmp/hadoop.tar.gz http://www-eu.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz",
|
---|
7 | path => $path,
|
---|
8 | user => $user,
|
---|
9 | group => $user,
|
---|
10 | unless => "ls ${install_dir} | grep hadoop-2.7.3",
|
---|
11 | require => Package["openjdk-7-jdk"]
|
---|
12 | }
|
---|
13 |
|
---|
14 | exec { "unpack_hadoop" :
|
---|
15 | command => "tar -zxf /tmp/hadoop.tar.gz -C ${install_dir}",
|
---|
16 | path => $path,
|
---|
17 | creates => "${hadoop_home}-2.7.3",
|
---|
18 | require => Exec["download_hadoop"]
|
---|
19 | }
|
---|
20 |
|
---|
21 | exec { 'chown':
|
---|
22 | command => "/bin/chown -R ${user}:${group} /opt/hadoop-2.7.3",
|
---|
23 | path => '/bin',
|
---|
24 | user => 'root',
|
---|
25 | require => Exec["unpack_hadoop"]
|
---|
26 | }
|
---|
27 |
|
---|
28 | file {
|
---|
29 | "${hadoop_home}-2.7.3/etc/hadoop/slaves":
|
---|
30 | content => template('hadoop/slaves'),
|
---|
31 | mode => 644,
|
---|
32 | owner => $user,
|
---|
33 | group => $group,
|
---|
34 | require => Exec["unpack_hadoop"]
|
---|
35 | }
|
---|
36 |
|
---|
37 | file {
|
---|
38 | "${hadoop_home}-2.7.3/etc/hadoop/masters":
|
---|
39 | content => template('hadoop/masters'),
|
---|
40 | mode => 644,
|
---|
41 | owner => $user,
|
---|
42 | group => $group,
|
---|
43 | require => Exec["unpack_hadoop"]
|
---|
44 | }
|
---|
45 |
|
---|
46 | file {
|
---|
47 | "${hadoop_home}-2.7.3/etc/hadoop/core-site.xml":
|
---|
48 | content => template('hadoop/core-site.xml'),
|
---|
49 | mode => 644,
|
---|
50 | owner => $user,
|
---|
51 | group => $group,
|
---|
52 | require => Exec["unpack_hadoop"]
|
---|
53 | }
|
---|
54 |
|
---|
55 | file {
|
---|
56 | "${hadoop_home}-2.7.3/etc/hadoop/mapred-site.xml":
|
---|
57 | content => template('hadoop/mapred-site.xml'),
|
---|
58 | mode => 644,
|
---|
59 | owner => $user,
|
---|
60 | group => $group,
|
---|
61 | require => Exec["unpack_hadoop"]
|
---|
62 | }
|
---|
63 |
|
---|
64 | file {
|
---|
65 | "${hadoop_home}-2.7.3/etc/hadoop/hdfs-site.xml":
|
---|
66 | content => template('hadoop/hdfs-site.xml'),
|
---|
67 | mode => 644,
|
---|
68 | owner => $user,
|
---|
69 | group => $group,
|
---|
70 | require => Exec["unpack_hadoop"]
|
---|
71 | }
|
---|
72 |
|
---|
73 | file {
|
---|
74 | "${hadoop_home}-2.7.3/etc/hadoop/hadoop-env.sh":
|
---|
75 | content => template('hadoop/hadoop-env.sh'),
|
---|
76 | mode => 644,
|
---|
77 | owner => $user,
|
---|
78 | group => $group,
|
---|
79 | require => Exec["unpack_hadoop"]
|
---|
80 | }
|
---|
81 |
|
---|
82 | file{
|
---|
83 | [ "${hadoop_home}-2.7.3/hadoop_store",
|
---|
84 | "${hadoop_home}-2.7.3/hadoop_store/hdfs",
|
---|
85 | "${hadoop_home}-2.7.3/hadoop_store/hdfs/namenode",
|
---|
86 | "${hadoop_home}-2.7.3/hadoop_store/hdfs/datanode"]:
|
---|
87 | ensure => 'directory',
|
---|
88 | owner => "${user}",
|
---|
89 | group => "${group}",
|
---|
90 | mode => 755,
|
---|
91 | require => Exec["unpack_hadoop"]
|
---|
92 | }
|
---|
93 |
|
---|
94 | file_line { "add_hadoop_home":
|
---|
95 | ensure => present,
|
---|
96 | path => "/home/${user}/.bashrc",
|
---|
97 | line => "export HADOOP_HOME=\"${hadoop_home}-2.7.3\"",
|
---|
98 | require => [ Exec["unpack_hadoop"], File["/home/${user}"] ]
|
---|
99 | }
|
---|
100 |
|
---|
101 | file_line { "add_hadoop_confdir":
|
---|
102 | ensure => present,
|
---|
103 | path => "/home/${user}/.bashrc",
|
---|
104 | line => 'export HADOOP_CONF_DIR="$HADOOP_HOME/etc/hadoop"',
|
---|
105 | require => [ Exec["unpack_hadoop"], File["/home/${user}"] ]
|
---|
106 | }
|
---|
107 |
|
---|
108 | file_line { "add_hadoop_setup":
|
---|
109 | ensure => present,
|
---|
110 | path => "/home/${user}/.bashrc",
|
---|
111 | line => 'source "$HADOOP_HOME/etc/hadoop/hadoop-env.sh"',
|
---|
112 | require => [ Exec["unpack_hadoop"], File["/home/${user}"] ]
|
---|
113 | }
|
---|
114 |
|
---|
115 | file_line { "add_hadoop_path":
|
---|
116 | ensure => present,
|
---|
117 | path => "/home/${user}/.bashrc",
|
---|
118 | line => 'export PATH="$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"',
|
---|
119 | require => [ Exec["unpack_hadoop"], File["/home/${user}"] ]
|
---|
120 | }
|
---|
121 |
|
---|
122 | }
|
---|
123 |
|
---|