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