【Hadoop】【JHS】3-JHS服务之HistoryServerStateStoreService源码解析
HistoryServerStateStoreService是一个service,同时作为history server的状态存储基类。
hadoop开放了参数:
mapreduce.jobhistory.recovery.enable false
mapreduce.jobhistory.recovery.store.class HistoryServerStateStoreService
客户可以根据自己的用法决定是否要打开history server状态恢复功能,以及是否要自定义状态恢复类。
但自定义实现必须要继承HistoryServerStateStoreService类。因为HistoryServerStateStoreService是一个抽象类,不能创建实例,因此如果打开了这个开关就必须要提供自定义实现类。默认是关闭的。
介绍HistoryServerStateService类之前首先介绍下它里面的一个重要的内部类;
public static class HistoryServerState {
Map<MRDelegationTokenIdentifier, Long> tokenState = new HashMap<MRDelegationTokenIdentifier, Long>();
Set<DelegationKey> tokenMasterKeyState = new HashSet<DelegationKey>();
public Map<MRDelegationTokenIdentifier, Long> getTokenState() {
return tokenState;
}
public Set<DelegationKey> getTokenMasterKeyState() {
return tokenMasterKeyState;
}
}
除此之外就是各种接口的定义,主要有是三种接口:
1-管理storage
protected abstract void initStorage(Configuration conf) throws IOException;
protected abstract void startStorage() throws IOException;
protected abstract void closeStorage() throws IOException;
2-管理DT
public abstract void storeToken(MRDelegationTokenIdentifier tokenId, Long renewDate) throws IOException;
public abstract void updateToken(MRDelegationTokenIdentifier tokenId, Long renewDate) throws IOException;
public abstract void removeToken(MRDelegationTokenIdentifier tokenId)throws IOException;
3-管理master key
public abstract void storeTokenMasterKey(DelegationKey key) throws IOException;
public abstract void removeTokenMasterKey(DelegationKey key) throws IOException;
- 点赞
- 收藏
- 关注作者
评论(0)