50
50
sudo apt-get install -y krb5-user krb5-kdc krb5-admin-server
51
51
52
52
printf " $KERBEROS_PASSWORD \n$KERBEROS_PASSWORD " | sudo kdb5_util -r " $KERBEROS_REALM " create -s
53
- for p in nn dn $USER gohdfs1 gohdfs2; do
53
+ for p in nn dn kms $USER gohdfs1 gohdfs2; do
54
54
sudo kadmin.local -q " addprinc -randkey $p /$HOSTNAME @$KERBEROS_REALM "
55
55
sudo kadmin.local -q " addprinc -randkey $p /localhost@$KERBEROS_REALM "
56
56
sudo kadmin.local -q " xst -k /tmp/$p .keytab $p /$HOSTNAME @$KERBEROS_REALM "
@@ -116,6 +116,10 @@ sudo tee $HADOOP_ROOT/etc/hadoop/core-site.xml <<EOF
116
116
<name>hadoop.rpc.protection</name>
117
117
<value>$RPC_PROTECTION </value>
118
118
</property>
119
+ <property>
120
+ <name>hadoop.security.key.provider.path</name>
121
+ <value>kms://http@localhost:9600/kms</value>
122
+ </property>
119
123
</configuration>
120
124
EOF
121
125
@@ -172,6 +176,40 @@ $HADOOP_ROOT/bin/hdfs namenode -format
172
176
sudo groupadd hadoop
173
177
sudo usermod -a -G hadoop $USER
174
178
179
+ sudo tee $HADOOP_ROOT /etc/hadoop/kms-site.xml << EOF
180
+ <configuration>
181
+ <property>
182
+ <name>hadoop.kms.key.provider.uri</name>
183
+ <value>jceks://file@/tmp/hdfs/kms.keystore</value>
184
+ </property>
185
+ <property>
186
+ <name>hadoop.security.keystore.java-keystore-provider.password-file</name>
187
+ <value>kms.keystore.password</value>
188
+ </property>
189
+ <property>
190
+ <name>hadoop.kms.authentication.type</name>
191
+ <value>$CONF_AUTHENTICATION </value>
192
+ </property>
193
+ <property>
194
+ <name>hadoop.kms.authentication.kerberos.keytab</name>
195
+ <value>/tmp/kms.keytab</value>
196
+ </property>
197
+ <property>
198
+ <name>hadoop.kms.authentication.kerberos.principal</name>
199
+ <value>kms/localhost@$KERBEROS_REALM </value>
200
+ </property>
201
+ </configuration>
202
+ EOF
203
+
204
+ sudo tee $HADOOP_ROOT /etc/hadoop/kms.keystore.password << EOF
205
+ 123456
206
+ EOF
207
+
208
+ echo " Starting KMS..."
209
+ export KMS_SILENT=false
210
+ export KMS_HTTP_PORT=9600
211
+ $HADOOP_ROOT /sbin/kms.sh start > /tmp/hdfs/kms.log 2>&1 &
212
+
175
213
echo " Starting namenode..."
176
214
$HADOOP_ROOT /bin/hdfs namenode > /tmp/hdfs/namenode.log 2>&1 &
177
215
@@ -183,5 +221,10 @@ sleep 5
183
221
echo " Waiting for cluster to exit safe mode..."
184
222
$HADOOP_ROOT /bin/hdfs dfsadmin -safemode wait
185
223
224
+ echo " Prepare encrypted zone"
225
+ $HADOOP_ROOT /bin/hadoop key create key1
226
+ $HADOOP_ROOT /bin/hadoop fs -mkdir -p /_test/kms
227
+ $HADOOP_ROOT /bin/hdfs crypto -createZone -keyName key1 -path /_test/kms
228
+
186
229
echo " HADOOP_CONF_DIR=$( pwd) /$HADOOP_ROOT /etc/hadoop" >> $GITHUB_ENV
187
- echo " $( pwd) /$HADOOP_ROOT /bin" >> $GITHUB_PATH
230
+ echo " $( pwd) /$HADOOP_ROOT /bin" >> $GITHUB_PATH
0 commit comments