HDFS-8693. Addendum patch to execute the command using UGI. Contributed by Brahma Reddy Battula.
(cherry picked from commit 35c17351ca
)
This commit is contained in:
parent
82530c966a
commit
24af0bc144
|
@ -240,20 +240,33 @@ class BlockPoolManager {
|
||||||
Joiner.on(",").useForNull("<default>").join(toRefresh));
|
Joiner.on(",").useForNull("<default>").join(toRefresh));
|
||||||
|
|
||||||
for (String nsToRefresh : toRefresh) {
|
for (String nsToRefresh : toRefresh) {
|
||||||
BPOfferService bpos = bpByNameserviceId.get(nsToRefresh);
|
final BPOfferService bpos = bpByNameserviceId.get(nsToRefresh);
|
||||||
Map<String, InetSocketAddress> nnIdToAddr = addrMap.get(nsToRefresh);
|
Map<String, InetSocketAddress> nnIdToAddr = addrMap.get(nsToRefresh);
|
||||||
Map<String, InetSocketAddress> nnIdToLifelineAddr =
|
Map<String, InetSocketAddress> nnIdToLifelineAddr =
|
||||||
lifelineAddrMap.get(nsToRefresh);
|
lifelineAddrMap.get(nsToRefresh);
|
||||||
ArrayList<InetSocketAddress> addrs =
|
final ArrayList<InetSocketAddress> addrs =
|
||||||
Lists.newArrayListWithCapacity(nnIdToAddr.size());
|
Lists.newArrayListWithCapacity(nnIdToAddr.size());
|
||||||
ArrayList<InetSocketAddress> lifelineAddrs =
|
final ArrayList<InetSocketAddress> lifelineAddrs =
|
||||||
Lists.newArrayListWithCapacity(nnIdToAddr.size());
|
Lists.newArrayListWithCapacity(nnIdToAddr.size());
|
||||||
for (String nnId : nnIdToAddr.keySet()) {
|
for (String nnId : nnIdToAddr.keySet()) {
|
||||||
addrs.add(nnIdToAddr.get(nnId));
|
addrs.add(nnIdToAddr.get(nnId));
|
||||||
lifelineAddrs.add(nnIdToLifelineAddr != null ?
|
lifelineAddrs.add(nnIdToLifelineAddr != null ?
|
||||||
nnIdToLifelineAddr.get(nnId) : null);
|
nnIdToLifelineAddr.get(nnId) : null);
|
||||||
}
|
}
|
||||||
bpos.refreshNNList(addrs, lifelineAddrs);
|
try {
|
||||||
|
UserGroupInformation.getLoginUser()
|
||||||
|
.doAs(new PrivilegedExceptionAction<Object>() {
|
||||||
|
@Override
|
||||||
|
public Object run() throws Exception {
|
||||||
|
bpos.refreshNNList(addrs, lifelineAddrs);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (InterruptedException ex) {
|
||||||
|
IOException ioe = new IOException();
|
||||||
|
ioe.initCause(ex.getCause());
|
||||||
|
throw ioe;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue