You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: sections/errors.md
+18-8Lines changed: 18 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,8 @@
21
21
22
22
# OS/JVM Layer; GSS library
23
23
24
-
Some of these are covered in Oracle's Troubleshooting Kerberos docs. This section just highlights some of the common causes, other causes that Oracle don't mention —and messages they haven't covered.
24
+
Some of these are covered in Oracle's Troubleshooting Kerberos docs.
25
+
This section just highlights some of the common causes, other causes that Oracle don't mention —and messages they haven't covered.
25
26
26
27
## Server not found in Kerberos database (7)
27
28
@@ -30,7 +31,8 @@ Some of these are covered in Oracle's Troubleshooting Kerberos docs. This sectio
30
31
31
32
## No valid credentials provided (Mechanism level: Illegal key size)]
32
33
33
-
Your JVM doesn't have the extended cryptography package and can't talk to the KDC. Switch to openjdk or go to your JVM supplier (Oracle, IBM) and download the JCE extension package, and install it in the hosts where you want Kerberos to work.
34
+
Your JVM doesn't have the extended cryptography package and can't talk to the KDC.
35
+
Switch to openjdk or go to your JVM supplier (Oracle, IBM) and download the JCE extension package, and install it in the hosts where you want Kerberos to work.
34
36
35
37
## No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt
36
38
@@ -41,14 +43,22 @@ This may appear in a stack trace starting with something like:
41
43
Possible causes:
42
44
43
45
1. You aren't logged in via `kinit`.
44
-
2. You did specify a keytab but it isn't there or is somehow otherwise invalid
45
-
3. You don't have the Java Cryptography Extensions installed.
46
+
1. You have logged in with `kinit`, but the tickets you were issued with have expired.
47
+
1. You did specify a keytab but it isn't there or is somehow otherwise invalid
48
+
1. You don't have the Java Cryptography Extensions installed.
46
49
47
50
## Clock skew too great
48
51
49
52
GSSException: No valid credentials provided (Mechanism level: Attempt to obtain new INITIATE credentials failed! (null)) . . . Caused by: javax.security.auth.login.LoginException: Clock skew too great
50
53
51
-
This comes from the clocks on the machines being too far out of sync. This can surface if you are doing Hadoop work on some VMs and have been suspending and resuming them; they've lost track of when they are. Reboot them.
54
+
GSSException: No valid credentials provided (Mechanism level: Clock skew too great (37) - PROCESS_TGS
55
+
56
+
kinit: krb5_get_init_creds: time skew (343) larger than max (300)
57
+
58
+
This comes from the clocks on the machines being too far out of sync.
59
+
60
+
This can surface if you are doing Hadoop work on some VMs and have been suspending and resuming them;
61
+
they've lost track of when they are. Reboot them.
52
62
If it's a physical cluster, make sure that your NTP daemons are pointing at the same NTP server, one that is actually reachable from the Hadoop cluster. And that the timezone settings of all the hosts are consistent.
53
63
54
64
## KDC has no support for encryption type
@@ -62,14 +72,14 @@ to prove to the KDC that the caller has the password. If the password is wrong,
62
72
an error about checksums.
63
73
1. Kerberos is very strict about hostnames and DNS; this can somehow trigger the problem.
Copy file name to clipboardExpand all lines: sections/hdfs.md
+77-18Lines changed: 77 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,18 @@
1
-
# HDFS and Kerberos
1
+
<!---
2
+
Licensed under the Apache License, Version 2.0 (the "License");
3
+
you may not use this file except in compliance with the License.
4
+
You may obtain a copy of the License at
5
+
6
+
http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+
Unless required by applicable law or agreed to in writing, software
9
+
distributed under the License is distributed on an "AS IS" BASIS,
10
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+
See the License for the specific language governing permissions and
12
+
limitations under the License. See accompanying LICENSE file.
13
+
-->
14
+
15
+
# HDFS
2
16
3
17
> It seemed to be a sort of monster, or symbol representing a monster, of a form which only a diseased fancy could conceive. If I say that my somewhat extravagant imagination yielded simultaneous pictures of an octopus, a dragon, and a human caricature, I shall not be unfaithful to the spirit of the thing. A pulpy, tentacled head surmounted a grotesque and scaly body with rudimentary wings; but it was the general outline of the whole which made it most shockingly frightful.
4
18
> *[The Call of Cthulhu](https://en.wikisource.org/wiki/The_Call_of_Cthulhu), HP Lovecraft, 1926.*
@@ -29,19 +43,47 @@ the HDFS team from implementing user-specific priority/throttling of HDFS data a
29
43
and allow multi-tenant Hadoop clusters to prioritise high-SLA applications over lower-priority
30
44
code.
31
45
32
-
## HDFS Namenode
46
+
## HDFS NameNode
33
47
34
-
### TODO
35
48
36
-
1.Namenode reads in a keytab and initializes itself from there (i.e. no need to `kinit`; ticket
49
+
1.NN reads in a keytab and initializes itself from there (i.e. no need to `kinit`; ticket
37
50
renewal handed by `UGI`).
38
-
1. In a secure cluster, Web HDFS requires SPNEGO
39
-
1. If web auth is enabled in a secure cluster, both the DN web UI will requires SPNEGO
40
-
1. In a secure cluster, if webauth is disabled, kerberos/SPNEGO auth may still be needed
41
-
to access the HDFS browser. This is a point of contention: its implicit from the delegation
42
-
to WebHDFS --but a change across Hadoop versions, as before an unauthed user could still browse
43
-
as "dr who".
51
+
1. Generates a *Secret*
52
+
53
+
Delegation tokens in the NN are persisted to the edit log, the operations `OP_GET_DELEGATION_TOKEN`
54
+
`OP_RENEW_DELEGATION_TOKEN` and `OP_CANCEL_DELEGATION_TOKEN` covering the actions. This ensures
55
+
that on failover, the tokens are still valid
56
+
57
+
58
+
### Block Keys
59
+
60
+
A `BlockKey` is the secret used to show that the caller has been granted access to a block
61
+
in a DN.
62
+
63
+
The NN issues the block key to a client, which then asks a DN for that block, supplying
64
+
the key as proof of authorization.
65
+
66
+
Block Keys are managed in the `BlockTokenSecretManager`, one in the NN
67
+
and another in every DN to track the block keys to which it has access.
68
+
It is the DNs which issue block keys as blocks are created; when they heartbeat to the NN
69
+
they include the keys.
70
+
71
+
### Block Tokens
72
+
73
+
A `BlockToken` is the token issued for access to a block; it includes
0 commit comments