|
@@ -38,6 +38,7 @@ import org.apache.hadoop.hdfs.util.DataTransferThrottler;
|
|
import org.apache.hadoop.ipc.ProtobufRpcEngine;
|
|
import org.apache.hadoop.ipc.ProtobufRpcEngine;
|
|
import org.apache.hadoop.ipc.RPC;
|
|
import org.apache.hadoop.ipc.RPC;
|
|
import org.apache.hadoop.security.SecurityUtil;
|
|
import org.apache.hadoop.security.SecurityUtil;
|
|
|
|
+import org.apache.hadoop.security.UserGroupInformation;
|
|
import org.apache.hadoop.util.Daemon;
|
|
import org.apache.hadoop.util.Daemon;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -439,15 +440,23 @@ public class JournalNodeSyncer {
|
|
File tmpEditsFile = jnStorage.getTemporaryEditsFile(
|
|
File tmpEditsFile = jnStorage.getTemporaryEditsFile(
|
|
log.getStartTxId(), log.getEndTxId());
|
|
log.getStartTxId(), log.getEndTxId());
|
|
|
|
|
|
- try {
|
|
|
|
- Util.doGetUrl(url, ImmutableList.of(tmpEditsFile), jnStorage, false,
|
|
|
|
- logSegmentTransferTimeout, throttler);
|
|
|
|
- } catch (IOException e) {
|
|
|
|
- LOG.error("Download of Edit Log file for Syncing failed. Deleting temp " +
|
|
|
|
- "file: " + tmpEditsFile);
|
|
|
|
- if (!tmpEditsFile.delete()) {
|
|
|
|
- LOG.warn("Deleting " + tmpEditsFile + " has failed");
|
|
|
|
|
|
+ if (!SecurityUtil.doAsLoginUser(() -> {
|
|
|
|
+ if (UserGroupInformation.isSecurityEnabled()) {
|
|
|
|
+ UserGroupInformation.getCurrentUser().checkTGTAndReloginFromKeytab();
|
|
|
|
+ }
|
|
|
|
+ try {
|
|
|
|
+ Util.doGetUrl(url, ImmutableList.of(tmpEditsFile), jnStorage, false,
|
|
|
|
+ logSegmentTransferTimeout, throttler);
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ LOG.error("Download of Edit Log file for Syncing failed. Deleting temp "
|
|
|
|
+ + "file: " + tmpEditsFile, e);
|
|
|
|
+ if (!tmpEditsFile.delete()) {
|
|
|
|
+ LOG.warn("Deleting " + tmpEditsFile + " has failed");
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
+ return true;
|
|
|
|
+ })) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
LOG.info("Downloaded file " + tmpEditsFile.getName() + " of size " +
|
|
LOG.info("Downloaded file " + tmpEditsFile.getName() + " of size " +
|