Multiple NameNode role-groups may lead to cluster startup failure
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- kubernetes, rust
- Lĩnh vực
- distributed-systems, infrastructure
Hướng nghiên cứu
Bắt đầu với script container init format-namenode và tái hiện quá trình khởi động với hai nhóm vai trò NameNode, kiểm tra cách cả hai có thể được format ở trạng thái active song song. Xem xét các tùy chọn ZooKeeper và operator-determined-role, cùng với issue #261, và cân nhắc các bài kiểm thử tích hợp được đề cập trong báo cáo; được xem là hoàn tất khi quá trình khởi động có tính xác định, với một NameNode active và không có lỗi image không hợp lệ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Affected version
0.7.0-nightly
Current and expected behavior
Currently, we have a format-namenode namenode init container and a script to either create an active or standby namenode.
With one role-group and the podManagementPolicy: "OrderedReady" we make sure that namenodes (actually data and journalnodes as well) will spin up after another.
With two role-groups like:
nameNodes:
roleGroups:
default:
replicas: 1
other_default:
replicas: 1
we get two StatefulSets, which by itself respect the "OrderedReady" policy but spin up their individual Pods in parallel.
This may lead to a cluster startup failure. The namenodes of the different role-groups sometimes (flaky) both format itself as active, with different blob IDs etc. which leads to the "slower" namenode to fail starting up and joining the cluster:
Failed to start namenode.
java.io.FileNotFoundException: No valid image files found
at org.apache.hadoop.hdfs.server.namenode.FSImageTransactionalStorageInspector.getLatestImages(FSImageTransactionalStorageInspector.java:158)
at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:688)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:339)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1201)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:779)
at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:681)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:768)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:1020)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:995)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1769)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1834)
Possible solution
We have to improve the format-namenode init container script to take into account namenodes (and their formatting) starting in parallel. Currently it just checks if there is already an active namenode and depending on that will format as active or standby (which leads to the "race" condition of having two nodes formatted as active with different blob IDs).
- Take ZooKeeper into account?
- Let the operator determine which role-group should format as active?
- Introduce "wait" times for different role-groups to make sure they will not spin up in parallel (not very deterministic)
@lfrancke @soenkeliebau @Jimvin any ideas?
Additional context
This came up when implementing logging for the HDFS operator (and the integrationtests using multiple role-groups per role for custom and automatic log testing).
We should try to get rid of the "OrderedReady" policy part anyways (see https://github.com/stackabletech/hdfs-operator/issues/261) to speed up cluster creation.
Environment
Failed on GKE 1.23, AWS 1.22, Azure 1.23 (and probably any other provider)
Would you like to work on fixing this bug?
None
- Ngôn ngữ chính
- Rust
- Star
- 53
- Fork
- 9
- Merge trung bình
- 1 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 10
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của stackabletech/hdfs-operator
-
Topology Provider permissions briefly dropped during reconciliation when the reflector watch resets Đang mởtype/bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
stackabletech/hdfs-operator#774 ·
-
type/bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
stackabletech/hdfs-operator#773 ·
-
Re-enable restart-controller Đang mởtype/internal-debt
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
stackabletech/hdfs-operator#769 ·
-
type/bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 52/100
stackabletech/hdfs-operator#763 ·
-
Incorrect Kerberos principals are created when external-* listener is configured on namenode Đang mởtype/bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
stackabletech/hdfs-operator#712 ·
Tất cả issue của stackabletech/hdfs-operator
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
Axis areas are always keyboard-focusable (Sense::drag), even with allow_axis_zoom_drag(false) Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
bug team:backend track:services-maintenance
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
cowprotocol/services#4950 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
gitbutlerapp/gitbutler#15998 · 1 bình luận ·