Backport HBASE-26477 Fix MiniMapReduceCluster failure under Java17 to branch-2 (#3878)

Signed-off-by: Duo Zhang <zhangduo@apache.org>
This commit is contained in:
Yutong Xiao 2021-11-25 16:25:44 +08:00 committed by GitHub
parent 2798ef132b
commit ccf150434d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 0 deletions

View File

@ -123,6 +123,7 @@ import org.apache.hadoop.hbase.util.CommonFSUtils;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.hadoop.hbase.util.FSTableDescriptors; import org.apache.hadoop.hbase.util.FSTableDescriptors;
import org.apache.hadoop.hbase.util.FSUtils; import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.util.JVM;
import org.apache.hadoop.hbase.util.JVMClusterUtil; import org.apache.hadoop.hbase.util.JVMClusterUtil;
import org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread; import org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;
import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread; import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
@ -2908,6 +2909,14 @@ public class HBaseTestingUtility extends HBaseZKTestingUtility {
conf.setBoolean("mapreduce.reduce.speculative", false); conf.setBoolean("mapreduce.reduce.speculative", false);
//// ////
// Yarn container runs in independent JVM. We need to pass the argument manually here if the
// JDK version >= 17. Otherwise, the MiniMRCluster will fail.
if (JVM.getJVMSpecVersion() >= 17) {
String jvmOpts = conf.get("yarn.app.mapreduce.am.command-opts", "");
conf.set("yarn.app.mapreduce.am.command-opts",
jvmOpts + " --add-opens java.base/java.lang=ALL-UNNAMED");
}
// Allow the user to override FS URI for this map-reduce cluster to use. // Allow the user to override FS URI for this map-reduce cluster to use.
mrCluster = new MiniMRCluster(servers, mrCluster = new MiniMRCluster(servers,
FS_URI != null ? FS_URI : FileSystem.get(conf).getUri().toString(), 1, FS_URI != null ? FS_URI : FileSystem.get(conf).getUri().toString(), 1,