forked from saltstack-formulas/hadoop-formula
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.sls
163 lines (137 loc) · 3.67 KB
/
init.sls
1
2
3
4
5
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
{%- from 'hadoop/settings.sls' import hadoop with context %}
{%- from 'hadoop/hdfs/settings.sls' import hdfs with context %}
{%- from 'hadoop/user_macro.sls' import hadoop_user with context %}
# TODO: no users implemented in settings yet
{%- set hadoop_users = hadoop.get('users', {}) %}
{%- set username = 'hdfs' %}
{%- set uid = hadoop_users.get(username, '6001') %}
{{ hadoop_user(username, uid) }}
# every node can advertise any JBOD drives to the framework by setting the hdfs_data_disk grain
{%- set hdfs_disks = hdfs.local_disks %}
{%- set test_folder = hdfs_disks|first() + '/hdfs/nn/current' %}
{% for disk in hdfs_disks %}
{{ disk }}/hdfs:
file.directory:
- user: root
- group: root
- makedirs: True
{% if hdfs.is_namenode %}
{{ disk }}/hdfs/nn:
file.directory:
- user: {{ username }}
- group: hadoop
- makedirs: True
{{ disk }}/hdfs/snn:
file.directory:
- user: {{ username }}
- group: hadoop
- makedirs: True
{% endif %}
{%- if hdfs.tmp_dir != '/tmp' %}
{{ hdfs.tmp_dir }}:
file.directory:
- user: {{ username }}
- group: hadoop
- makedirs: True
- mode: '1775'
{% endif %}
{% if hdfs.is_datanode %}
{{ disk }}/hdfs/dn:
file.directory:
- user: {{ username }}
- group: hadoop
- makedirs: True
{% endif %}
{% endfor %}
{{ hadoop.alt_config }}/core-site.xml:
file.managed:
- source: salt://hadoop/conf/hdfs/core-site.xml
- template: jinja
- mode: 644
{{ hadoop.alt_config }}/hdfs-site.xml:
file.managed:
- source: salt://hadoop/conf/hdfs/hdfs-site.xml
- template: jinja
- mode: 644
{{ hadoop.alt_config }}/masters:
file.managed:
- mode: 644
- contents: {{ hdfs.namenode_host }}
{{ hadoop.alt_config }}/slaves:
file.managed:
- mode: 644
- contents: |
{%- for slave in hdfs.datanode_hosts %}
{{ slave }}
{%- endfor %}
{{ hadoop.alt_config }}/dfs.hosts:
file.managed:
- mode: 644
- contents: |
{%- for slave in hdfs.datanode_hosts %}
{{ slave }}
{%- endfor %}
{{ hadoop.alt_config }}/dfs.hosts.exclude:
file.managed
{% if hdfs.is_namenode %}
format-namenode:
cmd.run:
{%- if hadoop.major_version|string() == '1' %}
- name: {{ hadoop.alt_home }}/bin/hadoop namenode -format -force
{%- else %}
- name: {{ hadoop.alt_home }}/bin/hdfs namenode -format
{% endif %}
- user: hdfs
- unless: test -d {{ test_folder }}
/etc/init.d/hadoop-namenode:
file.managed:
- source: salt://hadoop/files/{{ hadoop.initscript }}
- user: root
- group: root
- mode: '755'
- template: jinja
- context:
hadoop_svc: namenode
hadoop_user: hdfs
hadoop_major: {{ hadoop.major_version }}
hadoop_home: {{ hadoop.alt_home }}
/etc/init.d/hadoop-secondarynamenode:
file.managed:
- source: salt://hadoop/files/{{ hadoop.initscript }}
- user: root
- group: root
- mode: '755'
- template: jinja
- context:
hadoop_svc: secondarynamenode
hadoop_user: hdfs
hadoop_major: {{ hadoop.major_version }}
hadoop_home: {{ hadoop.alt_home }}
{% endif %}
{% if hdfs.is_datanode %}
/etc/init.d/hadoop-datanode:
file.managed:
- source: salt://hadoop/files/{{ hadoop.initscript }}
- user: root
- group: root
- mode: '755'
- template: jinja
- context:
hadoop_svc: datanode
hadoop_user: hdfs
hadoop_major: {{ hadoop.major_version }}
hadoop_home: {{ hadoop.alt_home }}
{% endif %}
{% if hdfs.is_namenode or hdfs.is_datanode %}
hdfs-services:
service.running:
- enable: True
- names:
{% if hdfs.is_namenode %}
- hadoop-secondarynamenode
- hadoop-namenode
{% endif %}
{% if hdfs.is_datanode %}
- hadoop-datanode
{% endif %}
{% endif %}