You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2020/03/04 16:56:11 UTC
[hbase] branch branch-2 updated: Put into all site.xmls and check
system property is set
This is an automated email from the ASF dual-hosted git repository.
stack pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new c8c2a87 Put into all site.xmls and check system property is set
c8c2a87 is described below
commit c8c2a875056f27c9af81293a504d75634cbc1fa5
Author: stack <st...@apache.org>
AuthorDate: Wed Mar 4 08:40:26 2020 -0800
Put into all site.xmls and check system property is set
---
.../hbase/ipc/DefaultNettyEventLoopConfig.java | 13 ++++++---
.../apache/hadoop/hbase/ipc/NettyRpcClient.java | 7 +++--
.../hbase/client/example/HttpProxyExample.java | 1 +
.../apache/hadoop/hbase/ipc/NettyRpcServer.java | 4 ++-
.../hbase/util/NettyEventLoopGroupConfig.java | 3 --
hbase-server/src/test/resources/hbase-site.xml | 32 ++++++++++++++++++++++
pom.xml | 2 ++
7 files changed, 52 insertions(+), 10 deletions(-)
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/DefaultNettyEventLoopConfig.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/DefaultNettyEventLoopConfig.java
index 87e5540..416e0ca 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/DefaultNettyEventLoopConfig.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/DefaultNettyEventLoopConfig.java
@@ -22,7 +22,6 @@ import org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup;
import org.apache.hbase.thirdparty.io.netty.channel.nio.NioEventLoopGroup;
import org.apache.hbase.thirdparty.io.netty.channel.socket.nio.NioSocketChannel;
import org.apache.hbase.thirdparty.io.netty.util.concurrent.DefaultThreadFactory;
-
import org.apache.yetus.audience.InterfaceAudience;
import org.apache.hadoop.hbase.util.Pair;
@@ -31,10 +30,16 @@ import org.apache.hadoop.hbase.util.Pair;
*/
@InterfaceAudience.Private
class DefaultNettyEventLoopConfig {
+ /**
+ * Name of system property to set to change default netty eventloop pool size.
+ * Default is 0.
+ */
+ public static final String HBASE_NETTY_EVENTLOOP_DEFAULT_POOL_KEY =
+ "hbase.netty.eventloop.default.pool";
public static final Pair<EventLoopGroup, Class<? extends Channel>> GROUP_AND_CHANNEL_CLASS = Pair
.<EventLoopGroup, Class<? extends Channel>> newPair(
- new NioEventLoopGroup(0,
- new DefaultThreadFactory("Default-IPC-NioEventLoopGroup", true, Thread.MAX_PRIORITY)),
- NioSocketChannel.class);
+ new NioEventLoopGroup(Integer.getInteger(HBASE_NETTY_EVENTLOOP_DEFAULT_POOL_KEY, 0),
+ new DefaultThreadFactory("Default-IPC-NioEventLoopGroup", true,
+ Thread.NORM_PRIORITY)), NioSocketChannel.class);
}
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcClient.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcClient.java
index c4f70b0..c4c614e 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcClient.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcClient.java
@@ -58,8 +58,11 @@ public class NettyRpcClient extends AbstractRpcClient<NettyRpcConnection> {
.getEventLoopConfig(conf);
if (groupAndChannelClass == null) {
// Use our own EventLoopGroup.
- this.group = new NioEventLoopGroup(0,
- new DefaultThreadFactory("IPC-NioEventLoopGroup", true, Thread.MAX_PRIORITY));
+ int count =
+ Integer.getInteger(DefaultNettyEventLoopConfig.HBASE_NETTY_EVENTLOOP_DEFAULT_POOL_KEY, 0);
+ System.out.println("COUNT="+ count);
+ this.group = new NioEventLoopGroup(count,
+ new DefaultThreadFactory("IPC-NioEventLoopGroup", true, Thread.NORM_PRIORITY));
this.channelClass = NioSocketChannel.class;
this.shutdownGroupWhenClose = true;
} else {
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java
index 4ada599..00d01a8 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java
@@ -229,6 +229,7 @@ public class HttpProxyExample {
channelGroup = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
serverChannel = new ServerBootstrap().group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class).childOption(ChannelOption.TCP_NODELAY, true)
+ .childOption(ChannelOption.SO_REUSEADDR, true)
.childHandler(new ChannelInitializer<Channel>() {
@Override
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
index bba1bed..a3acc8f 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
@@ -84,13 +84,15 @@ public class NettyRpcServer extends RpcServer {
eventLoopGroup = config.group();
channelClass = config.serverChannelClass();
} else {
- eventLoopGroup = new NioEventLoopGroup(0,
+ eventLoopGroup = new NioEventLoopGroup(
+ Integer.getInteger(DefaultNettyEventLoopConfig.HBASE_NETTY_EVENTLOOP_DEFAULT_POOL_KEY, 0),
new DefaultThreadFactory("NettyRpcServer", true, Thread.MAX_PRIORITY));
channelClass = NioServerSocketChannel.class;
}
ServerBootstrap bootstrap = new ServerBootstrap().group(eventLoopGroup).channel(channelClass)
.childOption(ChannelOption.TCP_NODELAY, tcpNoDelay)
.childOption(ChannelOption.SO_KEEPALIVE, tcpKeepAlive)
+ .childOption(ChannelOption.SO_REUSEADDR, true)
.childHandler(new ChannelInitializer<Channel>() {
@Override
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/NettyEventLoopGroupConfig.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/NettyEventLoopGroupConfig.java
index 3e7b488..3e247f3 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/NettyEventLoopGroupConfig.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/NettyEventLoopGroupConfig.java
@@ -27,9 +27,7 @@ import org.apache.hbase.thirdparty.io.netty.channel.nio.NioEventLoopGroup;
import org.apache.hbase.thirdparty.io.netty.channel.socket.nio.NioServerSocketChannel;
import org.apache.hbase.thirdparty.io.netty.channel.socket.nio.NioSocketChannel;
import org.apache.hbase.thirdparty.io.netty.util.concurrent.DefaultThreadFactory;
-
import java.util.concurrent.ThreadFactory;
-
import org.apache.hadoop.conf.Configuration;
import org.apache.yetus.audience.InterfaceAudience;
@@ -38,7 +36,6 @@ import org.apache.yetus.audience.InterfaceAudience;
*/
@InterfaceAudience.Private
public class NettyEventLoopGroupConfig {
-
private final EventLoopGroup group;
private final Class<? extends ServerChannel> serverChannelClass;
diff --git a/hbase-server/src/test/resources/hbase-site.xml b/hbase-server/src/test/resources/hbase-site.xml
index 64a1964..5ba8b03 100644
--- a/hbase-server/src/test/resources/hbase-site.xml
+++ b/hbase-server/src/test/resources/hbase-site.xml
@@ -158,4 +158,36 @@
<name>hbase.hconnection.threads.keepalivetime</name>
<value>3</value>
</property>
+ <property>
+ <name>hbase.netty.worker.count</name>
+ <value>5</value>
+ <description>Default is 0</description>
+ </property>
+ <property>
+ <name>hbase.hconnection.threads.max</name>
+ <value>6</value>
+ <description>Default is 256</description>
+ </property>
+ <property>
+ <name>hbase.htable.threads.max</name>
+ <value>6</value>
+ <description>Default is MAX_INTEGER</description>
+ </property>
+ <property>
+ <name>hbase.region.replica.replication.threads.max</name>
+ <value>10</value>
+ <description>Default is 256</description>
+ </property>
+ <property>
+ <name>dfs.datanode.handler.count</name>
+ <value>3</value>
+ <description>Default is 10</description>
+ </property>
+ <property>
+ <name>hbase.rest.threads.max</name>
+ <value>5</value>
+ <description>Default is 100</description>
+ </property>
+
+
</configuration>
diff --git a/pom.xml b/pom.xml
index 8886cc4..ef84296 100755
--- a/pom.xml
+++ b/pom.xml
@@ -586,6 +586,8 @@
<redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile>
<systemPropertyVariables>
<test.build.classes>${test.build.classes}</test.build.classes>
+ <!--For testing, set this do a low number: 5-->
+ <hbase.netty.eventloop.default.pool>5</hbase.netty.eventloop.default.pool>
</systemPropertyVariables>
<excludes>
<!-- users can add -D option to skip particular test classes