HDFS-7215.Add JvmPauseMonitor to NFS gateway. Contributed by Brandon Li
This commit is contained in:
parent
6f2028bd15
commit
4e134a02a4
|
@ -50,7 +50,7 @@ public abstract class Nfs3Base {
|
||||||
startTCPServer(); // Start TCP server
|
startTCPServer(); // Start TCP server
|
||||||
|
|
||||||
if (register) {
|
if (register) {
|
||||||
ShutdownHookManager.get().addShutdownHook(new Unregister(),
|
ShutdownHookManager.get().addShutdownHook(new NfsShutdownHook(),
|
||||||
SHUTDOWN_HOOK_PRIORITY);
|
SHUTDOWN_HOOK_PRIORITY);
|
||||||
try {
|
try {
|
||||||
rpcProgram.register(PortmapMapping.TRANSPORT_TCP, nfsBoundPort);
|
rpcProgram.register(PortmapMapping.TRANSPORT_TCP, nfsBoundPort);
|
||||||
|
@ -74,10 +74,11 @@ public abstract class Nfs3Base {
|
||||||
*/
|
*/
|
||||||
public static final int SHUTDOWN_HOOK_PRIORITY = 10;
|
public static final int SHUTDOWN_HOOK_PRIORITY = 10;
|
||||||
|
|
||||||
private class Unregister implements Runnable {
|
private class NfsShutdownHook implements Runnable {
|
||||||
@Override
|
@Override
|
||||||
public synchronized void run() {
|
public synchronized void run() {
|
||||||
rpcProgram.unregister(PortmapMapping.TRANSPORT_TCP, nfsBoundPort);
|
rpcProgram.unregister(PortmapMapping.TRANSPORT_TCP, nfsBoundPort);
|
||||||
|
rpcProgram.stopDaemons();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,8 +136,9 @@ public abstract class RpcProgram extends SimpleChannelUpstreamHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start extra daemons
|
// Start extra daemons or services
|
||||||
public void startDaemons() {}
|
public void startDaemons() {}
|
||||||
|
public void stopDaemons() {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
|
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
|
||||||
|
|
|
@ -126,6 +126,7 @@ import org.apache.hadoop.security.AccessControlException;
|
||||||
import org.apache.hadoop.security.SecurityUtil;
|
import org.apache.hadoop.security.SecurityUtil;
|
||||||
import org.apache.hadoop.security.UserGroupInformation;
|
import org.apache.hadoop.security.UserGroupInformation;
|
||||||
import org.apache.hadoop.security.authorize.AuthorizationException;
|
import org.apache.hadoop.security.authorize.AuthorizationException;
|
||||||
|
import org.apache.hadoop.util.JvmPauseMonitor;
|
||||||
import org.jboss.netty.buffer.ChannelBuffer;
|
import org.jboss.netty.buffer.ChannelBuffer;
|
||||||
import org.jboss.netty.buffer.ChannelBuffers;
|
import org.jboss.netty.buffer.ChannelBuffers;
|
||||||
import org.jboss.netty.channel.Channel;
|
import org.jboss.netty.channel.Channel;
|
||||||
|
@ -158,6 +159,7 @@ public class RpcProgramNfs3 extends RpcProgram implements Nfs3Interface {
|
||||||
private String writeDumpDir; // The dir save dump files
|
private String writeDumpDir; // The dir save dump files
|
||||||
|
|
||||||
private final RpcCallCache rpcCallCache;
|
private final RpcCallCache rpcCallCache;
|
||||||
|
private JvmPauseMonitor pauseMonitor;
|
||||||
|
|
||||||
public RpcProgramNfs3(NfsConfiguration config, DatagramSocket registrationSocket,
|
public RpcProgramNfs3(NfsConfiguration config, DatagramSocket registrationSocket,
|
||||||
boolean allowInsecurePorts) throws IOException {
|
boolean allowInsecurePorts) throws IOException {
|
||||||
|
@ -219,7 +221,21 @@ public class RpcProgramNfs3 extends RpcProgram implements Nfs3Interface {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startDaemons() {
|
public void startDaemons() {
|
||||||
writeManager.startAsyncDataSerivce();
|
if (pauseMonitor == null) {
|
||||||
|
pauseMonitor = new JvmPauseMonitor(config);
|
||||||
|
pauseMonitor.start();
|
||||||
|
}
|
||||||
|
writeManager.startAsyncDataSerivce();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void stopDaemons() {
|
||||||
|
if (writeManager != null) {
|
||||||
|
writeManager.shutdownAsyncDataService();
|
||||||
|
}
|
||||||
|
if (pauseMonitor != null) {
|
||||||
|
pauseMonitor.stop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checks the type of IOException and maps it to appropriate Nfs3Status code.
|
// Checks the type of IOException and maps it to appropriate Nfs3Status code.
|
||||||
|
|
|
@ -979,6 +979,8 @@ Release 2.6.0 - UNRELEASED
|
||||||
HDFS-7259. Unresponseive NFS mount point due to deferred COMMIT response.
|
HDFS-7259. Unresponseive NFS mount point due to deferred COMMIT response.
|
||||||
(brandonli)
|
(brandonli)
|
||||||
|
|
||||||
|
HDFS-7215.Add JvmPauseMonitor to NFS gateway (brandonli)
|
||||||
|
|
||||||
BREAKDOWN OF HDFS-6134 AND HADOOP-10150 SUBTASKS AND RELATED JIRAS
|
BREAKDOWN OF HDFS-6134 AND HADOOP-10150 SUBTASKS AND RELATED JIRAS
|
||||||
|
|
||||||
HDFS-6387. HDFS CLI admin tool for creating & deleting an
|
HDFS-6387. HDFS CLI admin tool for creating & deleting an
|
||||||
|
|
|
@ -171,7 +171,9 @@ HDFS NFS Gateway
|
||||||
</property>
|
</property>
|
||||||
----
|
----
|
||||||
|
|
||||||
* Customize log settings. To get NFS debug trace, users can edit the log4j.property file
|
* JVM and log settings. You can export JVM settings (e.g., heap size and GC log) in
|
||||||
|
HADOOP_NFS3_OPTS. More NFS related settings can be found in hadoop-env.sh.
|
||||||
|
To get NFS debug trace, you can edit the log4j.property file
|
||||||
to add the following. Note, debug trace, especially for ONCRPC, can be very verbose.
|
to add the following. Note, debug trace, especially for ONCRPC, can be very verbose.
|
||||||
|
|
||||||
To change logging level:
|
To change logging level:
|
||||||
|
|
Loading…
Reference in New Issue