Skip to content

Commit db380ea

Browse files
authored
Merge branch 'main' into refactor/untraitify-mergedconfig
2 parents 261098c + f05d68c commit db380ea

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file.
1111
### Changed
1212

1313
- `operator-rs` `0.56.1` -> `0.57.0` ([#433]).
14+
- Change default value of `dfs.ha.nn.not-become-active-in-safemode` from `true` to `false` ([#458]).
1415

1516
### Fixed
1617

@@ -19,6 +20,7 @@ All notable changes to this project will be documented in this file.
1920

2021
[#433]: https://github.com/stackabletech/hdfs-operator/pull/433
2122
[#451]: https://github.com/stackabletech/hdfs-operator/pull/451
23+
[#458]: https://github.com/stackabletech/hdfs-operator/pull/458
2224

2325
## [23.11.0] - 2023-11-24
2426

docs/modules/hdfs/pages/usage-guide/security.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ To configure HDFS to use Kerberos you first need to collect information about yo
1212
Additionally you need a service-user, which the secret-operator uses to create create principals for the HDFS services.
1313

1414
=== 2. Create Kerberos SecretClass
15-
Afterwards you need to enter all the needed information into a SecretClass, as described in xref:home:secret-operator:secretclass.adoc#backend-kerberoskeytab[secret-operator documentation].
15+
Afterwards you need to enter all the needed information into a SecretClass, as described in xref:home:secret-operator:secretclass.adoc#backend-kerberoskeytab[secret-operator documentation].
1616
The following guide assumes you have named your SecretClass `kerberos-hdfs`.
1717

1818
=== 3. Configure HDFS to use SecretClass
@@ -33,7 +33,7 @@ The `kerberos.secretClass` is used to give HDFS the possibility to request keyta
3333
The `tlsSecretClass` is needed to request TLS certificates, used e.g. for the Web UIs.
3434

3535

36-
=== 4. Verify that Kerberos is used
36+
=== 4. Verify that Kerberos authentication is required
3737
Use `stackablectl stacklet list` to get the endpoints where the HDFS namenodes are reachable.
3838
Open the link (note that the namenode is now using https).
3939
You should see a Web UI similar to the following:
@@ -74,5 +74,5 @@ spec:
7474
----
7575

7676
== Wire encryption
77-
In case kerberos is enabled, `Privacy` mode is used for best security.
78-
Wire encryption without kerberos as well as https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SecureMode.html#Data_confidentiality[other wire encryption modes] are *not* supported.
77+
In case Kerberos is enabled, `Privacy` mode is used for best security.
78+
Wire encryption without Kerberos as well as https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SecureMode.html#Data_confidentiality[other wire encryption modes] are *not* supported.

rust/operator-binary/src/hdfs_controller.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,15 @@ fn rolegroup_config_map(
494494
// IMPORTANT: these folders must be under the volume mount point, otherwise they will not
495495
// be formatted by the namenode, or used by the other services.
496496
// See also: https://github.com/apache-spark-on-k8s/kubernetes-HDFS/commit/aef9586ecc8551ca0f0a468c3b917d8c38f494a0
497+
//
498+
// Notes on configuration choices
499+
// ===============================
500+
// We used to set `dfs.ha.nn.not-become-active-in-safemode` to true here due to
501+
// badly worded HDFS documentation:
502+
// https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html
503+
// This caused a deadlock with no namenode becoming active during a startup after
504+
// HDFS was completely down for a while.
505+
497506
hdfs_site_xml = HdfsSiteConfigBuilder::new(hdfs_name.to_string())
498507
.dfs_namenode_name_dir()
499508
.dfs_datanode_data_dir(
@@ -512,7 +521,6 @@ fn rolegroup_config_map(
512521
.dfs_client_failover_proxy_provider()
513522
.security_config(hdfs)
514523
.add("dfs.ha.fencing.methods", "shell(/bin/true)")
515-
.add("dfs.ha.nn.not-become-active-in-safemode", "true")
516524
.add("dfs.ha.automatic-failover.enabled", "true")
517525
.add("dfs.ha.namenode.id", "${env.POD_NAME}")
518526
// the extend with config must come last in order to have overrides working!!!

0 commit comments

Comments
 (0)