HDFS-2335. DataNodeCluster and NNStorage always pull fresh entropy. Contributed by Uma Maheswara Rao G
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1220510 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a89baed833
commit
5e185702ea
|
@ -234,6 +234,9 @@ Release 0.23.1 - UNRELEASED
|
|||
HDFS-2675. Reduce warning verbosity when double-closing edit logs
|
||||
(todd)
|
||||
|
||||
HDFS-2335. DataNodeCluster and NNStorage always pull fresh entropy.
|
||||
(Uma Maheswara Rao G via eli)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
HDFS-2130. Switch default checksum to CRC32C. (todd)
|
||||
|
|
|
@ -30,6 +30,7 @@ import java.io.UnsupportedEncodingException;
|
|||
import java.net.InetSocketAddress;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Comparator;
|
||||
|
@ -70,11 +71,23 @@ public class DFSUtil {
|
|||
}
|
||||
};
|
||||
|
||||
/** @return a pseudorandom number generator. */
|
||||
private static final ThreadLocal<SecureRandom> SECURE_RANDOM = new ThreadLocal<SecureRandom>() {
|
||||
@Override
|
||||
protected SecureRandom initialValue() {
|
||||
return new SecureRandom();
|
||||
}
|
||||
};
|
||||
|
||||
/** @return a pseudo random number generator. */
|
||||
public static Random getRandom() {
|
||||
return RANDOM.get();
|
||||
}
|
||||
|
||||
/** @return a pseudo secure random number generator. */
|
||||
public static SecureRandom getSecureRandom() {
|
||||
return SECURE_RANDOM.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Compartor for sorting DataNodeInfo[] based on decommissioned states.
|
||||
* Decommissioned nodes are moved to the end of the array on sorting with
|
||||
|
|
|
@ -66,7 +66,6 @@ import java.net.UnknownHostException;
|
|||
import java.nio.channels.ServerSocketChannel;
|
||||
import java.nio.channels.SocketChannel;
|
||||
import java.security.PrivilegedExceptionAction;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.AbstractList;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
@ -1086,7 +1085,7 @@ public class DataNode extends Configured
|
|||
LOG.warn("Could not find ip address of \"default\" inteface.");
|
||||
}
|
||||
|
||||
int rand = new SecureRandom().nextInt(Integer.MAX_VALUE);
|
||||
int rand = DFSUtil.getSecureRandom().nextInt(Integer.MAX_VALUE);
|
||||
return "DS-" + rand + "-" + ip + "-" + port + "-"
|
||||
+ System.currentTimeMillis();
|
||||
}
|
||||
|
|
|
@ -26,8 +26,6 @@ import java.io.RandomAccessFile;
|
|||
import java.io.OutputStream;
|
||||
import java.net.URI;
|
||||
import java.net.UnknownHostException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
|
@ -978,13 +976,7 @@ public class NNStorage extends Storage implements Closeable {
|
|||
throw e;
|
||||
}
|
||||
|
||||
int rand = 0;
|
||||
try {
|
||||
rand = SecureRandom.getInstance("SHA1PRNG").nextInt(Integer.MAX_VALUE);
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
LOG.warn("Could not use SecureRandom");
|
||||
rand = DFSUtil.getRandom().nextInt(Integer.MAX_VALUE);
|
||||
}
|
||||
int rand = DFSUtil.getSecureRandom().nextInt(Integer.MAX_VALUE);
|
||||
String bpid = "BP-" + rand + "-"+ ip + "-" + System.currentTimeMillis();
|
||||
return bpid;
|
||||
}
|
||||
|
|
|
@ -19,10 +19,7 @@ package org.apache.hadoop.hdfs;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.Arrays;
|
||||
import java.util.Random;
|
||||
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
import org.apache.hadoop.fs.FileSystem;
|
||||
|
@ -234,12 +231,7 @@ public class DataNodeCluster {
|
|||
System.out.println("Could not find ip address of \"default\" inteface.");
|
||||
}
|
||||
|
||||
int rand = 0;
|
||||
try {
|
||||
rand = SecureRandom.getInstance("SHA1PRNG").nextInt(Integer.MAX_VALUE);
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
rand = (new Random()).nextInt(Integer.MAX_VALUE);
|
||||
}
|
||||
int rand = DFSUtil.getSecureRandom().nextInt(Integer.MAX_VALUE);
|
||||
return "/Rack-" + rand + "-"+ ip + "-" +
|
||||
System.currentTimeMillis();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue