1
1
#! /bin/bash
2
-
3
2
LOG_FILE=" /var/log/cloudera-OCI-initialize.log"
4
-
5
- # # logs everything to the $LOG_FILE
6
- log () {
7
- echo " $( date ) [ ${EXECNAME} ]: $* " >> " ${LOG_FILE} "
8
- }
9
-
3
+ log () { echo " $( date ) [ ${EXECNAME} ]: $* " >> " ${LOG_FILE} " }
4
+ cm_fqdn= ` curl -L http://169.254.169.254/opc/v1/instance/metadata/cloudera_manager `
5
+ cdh_version= ` curl -L http://169.254.169.254/opc/v1/instance/metadata/cdh_version `
6
+ cdh_major_version= ` echo $cdh_version | cut -d ' . ' -f1 `
7
+ cm_version= ` curl -L http://169.254.169.254/opc/v1/instance/metadata/cm_version `
8
+ cm_major_version= ` echo $cm_version | cut -d ' . ' -f1 `
10
9
EXECNAME=" TUNING"
11
10
log " ->TUNING START"
12
- #
13
- # HOST TUNINGS
14
- #
15
-
16
- # Disable SELinux
17
11
sed -i.bak ' s/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
18
12
setenforce 0
19
-
20
- # # Modify resolv.conf to ensure DNS lookups work
21
- rm -f /etc/resolv.conf
22
- echo " search public1.cdhvcn.oraclevcn.com public2.cdhvcn.oraclevcn.com public3.cdhvcn.oraclevcn.com private1.cdhvcn.oraclevcn.com private2.cdhvcn.oraclevcn.com private3.cdhvcn.oraclevcn.com bastion1.cdhvcn.oraclevcn.com bastion2.cdhvcn.oraclevcn.com bastion3.cdhvcn.oraclevcn.com" > /etc/resolv.conf
23
- echo " nameserver 169.254.169.254" >> /etc/resolv.conf
24
-
25
13
EXECNAME=" JAVA - KERBEROS"
26
14
log " ->INSTALL"
27
- # # Install Java & Kerberos client
28
- yum install java-1.8.0-openjdk.x86_64 krb5-workstation -y
29
-
15
+ yum install java-1.8.0-openjdk.x86_64 -y >> $LOG_FILE
16
+ yum install krb5-workstation -y >> $LOG_FILE
30
17
EXECNAME=" KERBEROS"
31
18
log " ->krb5.conf"
32
- # # Configure krb5.conf
33
19
kdc_server=' cdh-utility-1'
34
20
kdc_fqdn=` host $kdc_server | gawk ' {print $1}' `
35
21
realm=" hadoop.com"
@@ -72,18 +58,12 @@ includedir /etc/krb5.conf.d/
72
58
admin_server = FILE:/var/log/kadmin.log
73
59
default = FILE:/var/log/krb5lib.log
74
60
EOF
75
-
76
61
EXECNAME=" TUNING"
77
62
log " ->OS"
78
- # # Disable Transparent Huge Pages
79
63
echo never | tee -a /sys/kernel/mm/transparent_hugepage/enabled
80
64
echo " echo never | tee -a /sys/kernel/mm/transparent_hugepage/enabled" | tee -a /etc/rc.local
81
-
82
- # # Set vm.swappiness to 1
83
65
echo vm.swappiness=0 | tee -a /etc/sysctl.conf
84
66
echo 0 | tee /proc/sys/vm/swappiness
85
-
86
- # # Tune system network performance
87
67
echo net.ipv4.tcp_timestamps=0 >> /etc/sysctl.conf
88
68
echo net.ipv4.tcp_sack=1 >> /etc/sysctl.conf
89
69
echo net.core.rmem_max=4194304 >> /etc/sysctl.conf
@@ -94,40 +74,31 @@ echo net.core.optmem_max=4194304 >> /etc/sysctl.conf
94
74
echo net.ipv4.tcp_rmem=" 4096 87380 4194304" >> /etc/sysctl.conf
95
75
echo net.ipv4.tcp_wmem=" 4096 65536 4194304" >> /etc/sysctl.conf
96
76
echo net.ipv4.tcp_low_latency=1 >> /etc/sysctl.conf
97
-
98
- # # Tune File System options
99
77
sed -i " s/defaults 1 1/defaults,noatime 0 0/" /etc/fstab
100
-
101
- log " ->SSH"
102
- # # Enable root login via SSH key
103
- cp /root/.ssh/authorized_keys /root/.ssh/authorized_keys.bak
104
- cp /home/opc/.ssh/authorized_keys /root/.ssh/authorized_keys
105
-
106
- # # Set Limits
107
78
echo " hdfs - nofile 32768
108
79
hdfs - nproc 2048
109
80
hbase - nofile 32768
110
81
hbase - nproc 2048" >> /etc/security/limits.conf
111
82
ulimit -n 262144
112
-
113
83
log " ->FirewallD"
114
84
systemctl stop firewalld
115
85
systemctl disable firewalld
116
-
117
- # # Post Tuning Execution Below
118
86
EXECNAME=" MYSQL Connector"
119
- # # MySQL Connector Install
120
87
log " ->INSTALL"
121
88
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
122
89
tar zxvf mysql-connector-java-5.1.46.tar.gz
123
90
mkdir -p /usr/share/java/
124
91
cd mysql-connector-java-5.1.46
125
92
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
126
-
127
- #
128
- # DISK SETUP
129
- #
130
-
93
+ EXECNAME=" Cloudera Agent Install"
94
+ rpm --import https://archive.cloudera.com/cdh${cm_major_version} /${cm_version} /redhat7/yum//RPM-GPG-KEY-cloudera
95
+ wget http://archive.cloudera.com/cm${cm_major_version} /${cm_version} /redhat7/yum/cloudera-manager.repo -O /etc/yum.repos.d/cloudera-manager.repo
96
+ yum install cloudera-manager-agent -y >> $LOG_FILE
97
+ export JDK=` ls /usr/lib/jvm | head -n 1`
98
+ sudo JAVA_HOME=/usr/lib/jvm/$JDK /jre/ /opt/cloudera/cm-agent/bin/certmanager setup --configure-services
99
+ cp /etc/cloudera-scm-agent/config.ini /etc/cloudera-scm-agent/config.ini.orig
100
+ sed -e " s/\(server_host=\).*/\1${cm_fqdn} /" -i /etc/cloudera-scm-agent/config.ini
101
+ systemctl start cloudera-scm-agent
131
102
vol_match () {
132
103
case $i in
133
104
1) disk=" oraclevdb" ;;
@@ -163,7 +134,6 @@ case $i in
163
134
31) disk=" oraclevdag" ;;
164
135
esac
165
136
}
166
-
167
137
iscsi_setup () {
168
138
log " -> ISCSI Volume Setup - Volume ${i} : IQN ${iqn[$n]} "
169
139
iscsiadm -m node -o new -T ${iqn[$n]} -p 169.254.2.${n} :3260
@@ -173,15 +143,12 @@ iscsi_setup() {
173
143
iscsiadm -m node -T ${iqn[$n]} -p 169.254.2.${n} :3260 -l
174
144
log " --> Volume ${iqn[$n]} done"
175
145
}
176
-
177
146
iscsi_target_only (){
178
147
log " -->Logging into Volume ${iqn[$n]} "
179
148
su - opc -c " sudo iscsiadm -m node -T ${iqn[$n]} -p 169.254.2.${n} :3260 -l"
180
149
}
181
-
182
- # # Look for all ISCSI devices in sequence, finish on first failure
183
- EXECNAME=" ISCSI"
184
- log " - Begin Block Volume Detection Loop -"
150
+ EXECNAME=" DISK DETECTION"
151
+ log " ->Begin Block Volume Detection Loop"
185
152
detection_flag=" 0"
186
153
while [ " $detection_flag " = " 0" ]; do
187
154
detection_done=" 0"
@@ -191,7 +158,6 @@ while [ "$detection_flag" = "0" ]; do
191
158
iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.$i :3260 2>&1 2> /dev/null
192
159
iscsi_chk=` echo -e $? `
193
160
if [ $iscsi_chk = " 0" ]; then
194
- # IQN list is important set up this array with discovered IQNs
195
161
iqn[${i} ]=` iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.${i} :3260 | gawk ' {print $2}' `
196
162
log " -> Discovered volume $(( i- 1 )) - IQN: ${iqn[${i}]} "
197
163
continue
@@ -202,7 +168,7 @@ while [ "$detection_flag" = "0" ]; do
202
168
fi
203
169
fi
204
170
done ;
205
- # # Now let's do this again after a 30 second sleep to ensure consistency in case this ran in the middle of volume attachments
171
+ log " ->Sanity check, loop again"
206
172
sleep 30
207
173
sanity_detection_done=" 0"
208
174
sanity_volume_count=" 0"
@@ -211,7 +177,6 @@ while [ "$detection_flag" = "0" ]; do
211
177
iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.$i :3260 2>&1 2> /dev/null
212
178
iscsi_chk=` echo -e $? `
213
179
if [ $iscsi_chk = " 0" ]; then
214
- # IQN list is important set up this array with discovered IQNs
215
180
siqn[${i} ]=` iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.${i} :3260 | gawk ' {print $2}' `
216
181
continue
217
182
else
@@ -242,12 +207,7 @@ while [ "$detection_flag" = "0" ]; do
242
207
fi
243
208
done ;
244
209
245
- EXECNAME=" boot.sh - DISK PROVISIONING"
246
- #
247
- # Disk Setup uses drives /dev/sdb and /dev/sdc for statically mapped Cloudera partitions (logs, parcels)
248
- # If customizing your Terraform Templates - be sure to pay attention here to ensure proper mounts are presented
249
- #
250
- # # Primary Disk Mounting Function
210
+ EXECNAME=" DISK PROVISIONING"
251
211
data_mount () {
252
212
log " -->Mounting /dev/$disk to /data$dcount "
253
213
mkdir -p /data$dcount
@@ -263,21 +223,15 @@ block_data_mount () {
263
223
UUID=` lsblk -no UUID /dev/oracleoci/$disk `
264
224
echo " UUID=$UUID /data$dcount ext4 defaults,_netdev,nofail,noatime,discard,barrier=0 0 2" | tee -a /etc/fstab
265
225
}
266
-
267
226
EXECNAME=" DISK SETUP"
268
- # # Check for x>0 devices
269
227
log " ->Checking for disks..."
270
- nvcount=" 0"
271
- bvcount=" 0"
272
- # # Execute - will format all devices except sda for use as data disks in HDFS
273
228
dcount=0
274
229
for disk in ` ls /dev/ | grep nvme | grep n1` ; do
275
230
log " -->Processing /dev/$disk "
276
231
mke2fs -F -t ext4 -b 4096 -E lazy_itable_init=1 -O sparse_super,dir_index,extent,has_journal,uninit_bg -m1 /dev/$disk
277
232
data_mount
278
233
dcount=$(( dcount+ 1 ))
279
234
done ;
280
-
281
235
if [ ${# iqn[@]} -gt 0 ]; then
282
236
for i in ` seq 1 ${# iqn[@]} ` ; do
283
237
n=$(( i+ 1 ))
0 commit comments