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
- IOException
getInputStream(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.IOException
Socket.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
- IOException
getOutputStream(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.IOException
Socket.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 millisecondsIOException
Socket.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 millisecondsIOException
public 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/IPsUnknownHostException
public 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