Hadoop FSImage 파일 초기 구조
포맷 할 때 format 매개 변 수 를 namenode 에 전달 합 니 다. 매개 변 수 를 분석 한 후에 해당 하 는 format 함 수 를 실행 합 니 다. 호출 절차 가 간단 합 니 다. 다음은 포맷 된 로그 입 니 다.
13/08/17 15:42:17 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host =ts08/192.168.0.43
STARTUP_MSG: args =[-format]
STARTUP_MSG: version =1.0.4
STARTUP_MSG: build =https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1393290;compiled by 'hortonfo' on Wed Oct 305:13:58 UTC 2012
************************************************************/
Re-format filesystem in C:\hadoop\hname ? (Y or N) Y
13/08/17 15:42:21 INFO util.GSet: VM type = 32-bit
13/08/17 15:42:21 INFO util.GSet: 2% max memory = 1.27125 MB
13/08/17 15:42:21 INFO util.GSet: capacity = 2^18 = 262144 entries
13/08/17 15:42:21 INFO util.GSet: recommended=262144,actual=262144
13/08/17 15:42:21 INFO namenode.FSNamesystem:fsOwner=Administrator
13/08/17 15:42:21 INFO namenode.FSNamesystem:supergroup=supergroup
13/08/17 15:42:21 INFO namenode.FSNamesystem:isPermissionEnabled=true
13/08/17 15:42:21 INFO namenode.FSNamesystem:dfs.block.invalidate.limit=100
13/08/17 15:42:21 INFO namenode.FSNamesystem:isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s),accessTokenLifetime=0 min(s)
13/08/17 15:42:21 INFO namenode.NameNode: Caching file namesoccuring more than 10 times
13/08/17 15:42:21 INFO common.Storage: Image file ofsize 119 saved in 0 seconds.
13/08/17 15:42:21 INFO common.Storage: Storage directoryC:\hadoop\hname has been successfully formatted.
13/08/17 15:42:21 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ts08/192.168.0.43
************************************************************/
FSImage 파일 에 119 바이트 가 기 록 된 것 을 볼 수 있 습 니 다. 추적 을 통 해 이 파일 의 구 조 를 알 수 있 습 니 다. 위의 그림:
FSImage 초기 구조
오프셋
길이
원소명
데이터 형식
값.
원본 파일 이름
소스 코드 위치
코드
0
4
LAYOUT_VERSION
int
-32
FSImage.java
1048
out.writeInt(FSConstants.LAYOUT_VERSION);
4
4
namespaceID
int
1114775793
FSImage.java
1049
out.writeInt(namespaceID);
8
8
INodeDirectoryWithQuota nsCount
long
1
FSImage.java
1050
out.writeLong(fsDir.rootDir.numItemsInTree());
16
8
timestamp
long
xxxxxxxx
FSImage.java
1051
out.writeLong(fsNamesys.getGenerationStamp());
Inode
24
2
nameLen
short
0
FSImage.java
1350
out.writeShort(nameLen);
26
2
replication
short
0
FSImage.java
1367
out.writeShort(0); //replication
28
8
ModificationTime
long
xxxxxxxx
FSImage.java
1368
out.writeLong(node.getModificationTime());
36
8
access time
long
0
FSImage.java
1369
out.writeLong(0); //access time
44
8
preferred block size
long
0
FSImage.java
1370
out.writeLong(0); //preferred block size
52
4
# of blocks
int
0
FSImage.java
1371
out.writeInt(-1); //# of blocks
56
8
NameSpace quota
long
-1
FSImage.java
1372
out.writeLong(node.getNsQuota());
64
8
disk space quota
long
-1
FSImage.java
1373
out.writeLong(node.getDsQuota());
72
1
username length
byte
13
Text.java
411
WritableUtils.writeVInt(out, length);
73
13
username
array[]
administrator
Text.java
412
out.write(bytes.array(), 0, length);
86
1
groupname length
byte
10
Text.java
411
WritableUtils.writeVInt(out, length);
87
10
groupname
array[]
supergroup
Text.java
412
out.write(bytes.array(), 0, length);
97
2
permission
short
493
PermissionStatus.java
111
permission.write(out);
99
4
paths in lease
int
0
FSNameSystem.java
5443
out.writeInt(leaseManager.countPath());
103
4
currentId
int
0
DelegationTokenSecretManager.java
120
out.writeInt(currentId);
107
4
allKeys
int
0
DelegationTokenSecretManager.java
244
out.writeInt(allKeys.size());
111
4
delegationTokenSequenceNumber
int
0
DelegationTokenSecretManager.java
122
out.writeInt(delegationTokenSequenceNumber);
115
4
CurrentTokens
int
0
DelegationTokenSecretManager.java
123
saveCurrentTokens(out);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.