public class NetUtils extends Object
| 构造器和说明 |
|---|
NetUtils() |
| 限定符和类型 | 方法和说明 |
|---|---|
static void |
addStaticResolution(String host,
String resolvedName)
Adds a static resolution for host.
|
static void |
connect(Socket socket,
SocketAddress address,
int timeout)
This is a drop-in replacement for
Socket.connect(SocketAddress, int). |
static void |
connect(Socket socket,
SocketAddress endpoint,
SocketAddress localAddr,
int timeout)
Like
connect(Socket, SocketAddress, int) but
also takes a local address and port to bind the socket to. |
static InetSocketAddress |
createSocketAddr(String target)
Util method to build socket addr from either:
|
static InetSocketAddress |
createSocketAddr(String target,
int defaultPort)
Util method to build socket addr from either:
|
static List<String[]> |
getAllStaticResolutions()
This is used to get all the resolutions that were added using
addStaticResolution(String, String). |
static URI |
getCanonicalUri(URI uri,
int defaultPort)
Resolve the uri's hostname and add the default port if not in the uri
|
static InetSocketAddress |
getConnectAddress(Server server)
Returns InetSocketAddress that a client can use to
connect to the server.
|
static SocketFactory |
getDefaultSocketFactory(Configuration conf)
Get the default socket factory as specified by the configuration
parameter hadoop.rpc.socket.factory.default
|
static InputStream |
getInputStream(Socket socket)
Same as getInputStream(socket, socket.getSoTimeout()).
|
static InputStream |
getInputStream(Socket socket,
long timeout)
Returns InputStream for the socket.
|
static List<InetAddress> |
getIPs(String subnet,
boolean returnSubinterfaces)
Return an InetAddress for each interface that matches the
given subnet specified using CIDR notation.
|
static InetAddress |
getLocalInetAddress(String host)
Checks if
host is a local host name and return InetAddress
corresponding to that address. |
static OutputStream |
getOutputStream(Socket socket)
Same as getOutputStream(socket, 0).
|
static OutputStream |
getOutputStream(Socket socket,
long timeout)
Returns OutputStream for the socket.
|
static String |
getServerAddress(Configuration conf,
String oldBindAddressName,
String oldPortName,
String newBindAddressName)
已过时。
|
static SocketFactory |
getSocketFactory(Configuration conf,
Class<?> clazz)
Get the socket factory for the given class according to its
configuration parameter
hadoop.rpc.socket.factory.class.
|
static SocketFactory |
getSocketFactoryFromProperty(Configuration conf,
String propValue)
Get the socket factory corresponding to the given proxy URI.
|
static String |
getStaticResolution(String host)
Retrieves the resolved name for the passed host.
|
static boolean |
isValidSubnet(String subnet) |
static InetSocketAddress |
makeSocketAddr(String host,
int port)
Create a socket address with the given host and port.
|
static String |
normalizeHostName(String name)
Given a string representation of a host, return its ip address
in textual presentation.
|
static List<String> |
normalizeHostNames(Collection<String> names)
Given a collection of string representation of hosts, return a list of
corresponding IP addresses in the textual representation.
|
static void |
verifyHostnames(String[] names)
Performs a sanity check on the list of hostnames/IPs to verify they at least
appear to be valid.
|
public static SocketFactory getSocketFactory(Configuration conf, Class<?> clazz)
conf - the configurationclazz - the class (usually a VersionedProtocol)public static SocketFactory getDefaultSocketFactory(Configuration conf)
conf - the configurationpublic static SocketFactory getSocketFactoryFromProperty(Configuration conf, String propValue)
propValue - the property which is the class name of the
SocketFactory to instantiate; assumed non null and non empty.public static InetSocketAddress createSocketAddr(String target)
public static InetSocketAddress createSocketAddr(String target, int defaultPort)
public static InetSocketAddress makeSocketAddr(String host, int port)
addStaticResolution(String, String). The value of
hadoop.security.token.service.use_ip will determine whether the
standard java host resolver is used, or if the fully qualified resolver
is used.host - the hostname or IP use to instantiate the objectport - the port numberpublic static URI getCanonicalUri(URI uri, int defaultPort)
uri - to resolvedefaultPort - if none is givenUnknownHostException@Deprecated public static String getServerAddress(Configuration conf, String oldBindAddressName, String oldPortName, String newBindAddressName)
conf - the configuration to checkoldBindAddressName - the old address attribute nameoldPortName - the old port attribute namenewBindAddressName - the new combined namepublic static void addStaticResolution(String host, String resolvedName)
getStaticResolution(String) can be used to query for
the actual hostname.host - resolvedName - public static String getStaticResolution(String host)
addStaticResolution(String, String)host - public static List<String[]> getAllStaticResolutions()
addStaticResolution(String, String). The return
value is a List each element of which contains an array of String
of the form String[0]=hostname, String[1]=resolved-hostnamepublic static InetSocketAddress getConnectAddress(Server server)
server - public static InputStream getInputStream(Socket socket) throws IOException
getInputStream(Socket, long):SocketInputStream with the given timeout. If the socket does not
have a channel, Socket.getInputStream() is returned. In the later
case, the timeout argument is ignored and the timeout set with
Socket.setSoTimeout(int) applies for reads.NetUtils,
must use this interface instead of Socket.getInputStream().socket - IOExceptiongetInputStream(Socket, long)public static InputStream getInputStream(Socket socket, long timeout) throws IOException
SocketInputStream with the given timeout. If the socket does not
have a channel, Socket.getInputStream() is returned. In the later
case, the timeout argument is ignored and the timeout set with
Socket.setSoTimeout(int) applies for reads.NetUtils,
must use this interface instead of Socket.getInputStream().socket - timeout - timeout in milliseconds. This may not always apply. zero
for waiting as long as necessary.IOExceptionSocket.getChannel()public static OutputStream getOutputStream(Socket socket) throws IOException
getOutputStream(Socket, long) : SocketOutputStream with the given timeout. If the socket does not
have a channel, Socket.getOutputStream() is returned. In the later
case, the timeout argument is ignored and the write will wait until
data is available.NetUtils,
must use this interface instead of Socket.getOutputStream().socket - IOExceptiongetOutputStream(Socket, long)public static OutputStream getOutputStream(Socket socket, long timeout) throws IOException
SocketOutputStream with the given timeout. If the socket does not
have a channel, Socket.getOutputStream() is returned. In the later
case, the timeout argument is ignored and the write will wait until
data is available.NetUtils,
must use this interface instead of Socket.getOutputStream().socket - timeout - timeout in milliseconds. This may not always apply. zero
for waiting as long as necessary.IOExceptionSocket.getChannel()public static void connect(Socket socket, SocketAddress address, int timeout) throws IOException
Socket.connect(SocketAddress, int).
In the case of normal sockets that don't have associated channels, this
just invokes socket.connect(endpoint, timeout). If
socket.getChannel() returns a non-null channel,
connect is implemented using Hadoop's selectors. This is done mainly
to avoid Sun's connect implementation from creating thread-local
selectors, since Hadoop does not have control on when these are closed
and could end up taking all the available file descriptors.socket - address - the remote addresstimeout - timeout in millisecondsIOExceptionSocket.connect(java.net.SocketAddress, int)public static void connect(Socket socket, SocketAddress endpoint, SocketAddress localAddr, int timeout) throws IOException
connect(Socket, SocketAddress, int) but
also takes a local address and port to bind the socket to.socket - endpoint - the remote addresslocalAddr - the local address to bind the socket totimeout - timeout in millisecondsIOExceptionpublic static String normalizeHostName(String name)
name - a string representation of a host:
either a textual representation its IP address or its host namepublic static List<String> normalizeHostNames(Collection<String> names)
names - a collection of string representations of hostsnormalizeHostName(String)public static void verifyHostnames(String[] names) throws UnknownHostException
names - - List of hostnames/IPsUnknownHostExceptionpublic static InetAddress getLocalInetAddress(String host) throws SocketException
host is a local host name and return InetAddress
corresponding to that address.host - the specified hostInetAddress or nullSocketException - if an I/O error occurspublic static boolean isValidSubnet(String subnet)
public static List<InetAddress> getIPs(String subnet, boolean returnSubinterfaces)
subnet - subnet specified using CIDR notationreturnSubinterfaces - whether to return IPs associated with subinterfacesIllegalArgumentException - if subnet is invalidCopyright © 2009 The Apache Software Foundation