From 9c3e645cf4b8081d2cc87452f7e6485cf24b33f6 Mon Sep 17 00:00:00 2001 From: Duo Zhang Date: Fri, 10 Mar 2023 23:28:34 +0800 Subject: [PATCH] HBASE-27702 Remove 'hbase.regionserver.hlog.writer.impl' config --- .../IntegrationTestIngestWithEncryption.java | 4 - .../wal/AbstractProtobufLogWriter.java | 117 ++++++++---------- .../wal/AbstractProtobufWALReader.java | 7 +- .../wal/AsyncProtobufLogWriter.java | 9 -- .../wal/SecureAsyncProtobufLogWriter.java | 65 ---------- .../wal/SecureProtobufLogWriter.java | 48 ------- .../hadoop/hbase/wal/AsyncFSWALProvider.java | 2 +- .../hadoop/hbase/wal/FSHLogProvider.java | 4 +- .../wal/InstrumentedLogWriter.java | 5 - .../wal/TestLogRollingNoCluster.java | 3 +- .../wal/TestSecureAsyncWALReplay.java | 3 - .../regionserver/wal/TestSecureWALReplay.java | 3 - .../hadoop/hbase/wal/IOTestProvider.java | 5 - .../hadoop/hbase/wal/TestSecureWAL.java | 6 - .../apache/hadoop/hbase/wal/TestWALSplit.java | 3 +- .../hbase/wal/WALPerformanceEvaluation.java | 4 - 16 files changed, 63 insertions(+), 225 deletions(-) delete mode 100644 hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.java delete mode 100644 hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.java diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.java index de69b5fb8411..e0dcb0c48582 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.java @@ -26,10 +26,8 @@ import org.apache.hadoop.hbase.client.TableDescriptor; import org.apache.hadoop.hbase.io.crypto.KeyProviderForTesting; import org.apache.hadoop.hbase.io.hfile.HFile; -import org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogWriter; import org.apache.hadoop.hbase.testclassification.IntegrationTests; import org.apache.hadoop.hbase.util.EncryptionTest; -import org.apache.hadoop.hbase.wal.WALProvider.Writer; import org.apache.hadoop.util.ToolRunner; import org.junit.Before; import org.junit.experimental.categories.Category; @@ -52,8 +50,6 @@ public void setUpCluster() throws Exception { conf.setInt(HFile.FORMAT_VERSION_KEY, 3); conf.set(HConstants.CRYPTO_KEYPROVIDER_CONF_KEY, KeyProviderForTesting.class.getName()); conf.set(HConstants.CRYPTO_MASTERKEY_NAME_CONF_KEY, "hbase"); - conf.setClass("hbase.regionserver.hlog.writer.impl", SecureProtobufLogWriter.class, - Writer.class); conf.setBoolean(HConstants.ENABLE_WAL_ENCRYPTION, true); } // Check if the cluster configuration can support this test diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.java index d89ef6f2110a..890fb4e444c7 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.java @@ -29,7 +29,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.apache.hadoop.hbase.HBaseInterfaceAudience; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.codec.Codec; import org.apache.hadoop.hbase.io.asyncfs.monitor.StreamSlowMonitor; @@ -55,13 +54,14 @@ /** * Base class for Protobuf log writer. */ -@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG) +@InterfaceAudience.Private public abstract class AbstractProtobufLogWriter { private static final Logger LOG = LoggerFactory.getLogger(AbstractProtobufLogWriter.class); protected CompressionContext compressionContext; protected Configuration conf; + protected Encryptor encryptor; protected Codec.Encoder cellEncoder; protected WALCellCodec.ByteStringCompressor compressor; protected boolean trailerWritten; @@ -77,64 +77,53 @@ private WALCellCodec getCodec(Configuration conf, CompressionContext compression return WALCellCodec.create(conf, null, compressionContext); } - private WALHeader buildWALHeader0(Configuration conf, WALHeader.Builder builder) { - if (!builder.hasWriterClsName()) { - builder.setWriterClsName(getWriterClassName()); - } - if (!builder.hasCellCodecClsName()) { - builder.setCellCodecClsName(WALCellCodec.getWALCellCodecClass(conf).getName()); - } - return builder.build(); - } - - protected WALHeader buildWALHeader(Configuration conf, WALHeader.Builder builder) + private WALHeader buildWALHeader(Configuration conf, WALHeader.Builder builder) throws IOException { - return buildWALHeader0(conf, builder); + builder.setWriterClsName(getWriterClassName()); + builder.setCellCodecClsName(WALCellCodec.getWALCellCodecClass(conf).getName()); + return builder.build(); } - // should be called in sub classes's buildWALHeader method to build WALHeader for secure - // environment. Do not forget to override the setEncryptor method as it will be called in this - // method to init your encryptor. - protected final WALHeader buildSecureWALHeader(Configuration conf, WALHeader.Builder builder) + private WALHeader buildSecureWALHeader(Configuration conf, WALHeader.Builder builder) throws IOException { - builder.setWriterClsName(getWriterClassName()); - if (conf.getBoolean(HConstants.ENABLE_WAL_ENCRYPTION, false)) { - EncryptionTest.testKeyProvider(conf); - EncryptionTest.testCipherProvider(conf); - - // Get an instance of our cipher - final String cipherName = - conf.get(HConstants.CRYPTO_WAL_ALGORITHM_CONF_KEY, HConstants.CIPHER_AES); - Cipher cipher = Encryption.getCipher(conf, cipherName); - if (cipher == null) { - throw new RuntimeException("Cipher '" + cipherName + "' is not available"); - } + EncryptionTest.testKeyProvider(conf); + EncryptionTest.testCipherProvider(conf); + + // Get an instance of our cipher + final String cipherName = + conf.get(HConstants.CRYPTO_WAL_ALGORITHM_CONF_KEY, HConstants.CIPHER_AES); + Cipher cipher = Encryption.getCipher(conf, cipherName); + if (cipher == null) { + throw new RuntimeException("Cipher '" + cipherName + "' is not available"); + } - // Generate a random encryption key for this WAL - Key key = cipher.getRandomKey(); - builder.setEncryptionKey(UnsafeByteOperations.unsafeWrap(EncryptionUtil.wrapKey(conf, - conf.get(HConstants.CRYPTO_WAL_KEY_NAME_CONF_KEY, - conf.get(HConstants.CRYPTO_MASTERKEY_NAME_CONF_KEY, User.getCurrent().getShortName())), - key))); - - // Set up the encryptor - Encryptor encryptor = cipher.getEncryptor(); - encryptor.setKey(key); - setEncryptor(encryptor); - if (LOG.isTraceEnabled()) { - LOG.trace("Initialized secure protobuf WAL: cipher=" + cipher.getName()); - } + // Generate a random encryption key for this WAL + Key key = cipher.getRandomKey(); + builder.setEncryptionKey(UnsafeByteOperations.unsafeWrap(EncryptionUtil.wrapKey(conf, + conf.get(HConstants.CRYPTO_WAL_KEY_NAME_CONF_KEY, + conf.get(HConstants.CRYPTO_MASTERKEY_NAME_CONF_KEY, User.getCurrent().getShortName())), + key))); + + // Set up the encryptor + Encryptor encryptor = cipher.getEncryptor(); + encryptor.setKey(key); + this.encryptor = encryptor; + if (LOG.isTraceEnabled()) { + LOG.trace("Initialized secure protobuf WAL: cipher={}", cipher.getName()); } + builder.setWriterClsName(getWriterClassName()); builder.setCellCodecClsName(SecureWALCellCodec.class.getName()); - return buildWALHeader0(conf, builder); - } - - // override this if you need a encryptor - protected void setEncryptor(Encryptor encryptor) { + return builder.build(); } - protected String getWriterClassName() { - return getClass().getSimpleName(); + private String getWriterClassName() { + // class name which is recognized by hbase-1.x to avoid ProtobufLogReader throwing error: + // IOException: Got unknown writer class: AsyncProtobufLogWriter + if (encryptor == null) { + return "ProtobufLogWriter"; + } else { + return "SecureProtobufLogWriter"; + } } private boolean initializeCompressionContext(Configuration conf, Path path) throws IOException { @@ -187,9 +176,13 @@ public void init(FileSystem fs, Path path, Configuration conf, boolean overwrita headerBuilder.setValueCompressionAlgorithm( CompressionContext.getValueCompressionAlgorithm(conf).ordinal()); } - length.set(writeMagicAndWALHeader(PB_WAL_MAGIC, buildWALHeader(conf, headerBuilder))); - - initAfterHeader(doCompress); + if (conf.getBoolean(HConstants.ENABLE_WAL_ENCRYPTION, false)) { + length.set(writeMagicAndWALHeader(PB_WAL_MAGIC, buildSecureWALHeader(conf, headerBuilder))); + secureInitAfterHeader(doCompress, encryptor); + } else { + length.set(writeMagicAndWALHeader(PB_WAL_MAGIC, buildWALHeader(conf, headerBuilder))); + initAfterHeader(doCompress); + } // instantiate trailer to default value. trailer = WALTrailer.newBuilder().build(); @@ -205,7 +198,7 @@ public void init(FileSystem fs, Path path, Configuration conf, boolean overwrita } } - private void initAfterHeader0(boolean doCompress) throws IOException { + private void initAfterHeader(boolean doCompress) throws IOException { WALCellCodec codec = getCodec(conf, this.compressionContext); this.cellEncoder = codec.getEncoder(getOutputStreamForCellEncoder()); if (doCompress) { @@ -215,21 +208,15 @@ private void initAfterHeader0(boolean doCompress) throws IOException { } } - protected void initAfterHeader(boolean doCompress) throws IOException { - initAfterHeader0(doCompress); - } - - // should be called in sub classes's initAfterHeader method to init SecureWALCellCodec. - protected final void secureInitAfterHeader(boolean doCompress, Encryptor encryptor) - throws IOException { - if (conf.getBoolean(HConstants.ENABLE_WAL_ENCRYPTION, false) && encryptor != null) { + private void secureInitAfterHeader(boolean doCompress, Encryptor encryptor) throws IOException { + if (encryptor != null) { WALCellCodec codec = SecureWALCellCodec.getCodec(this.conf, encryptor); this.cellEncoder = codec.getEncoder(getOutputStreamForCellEncoder()); // We do not support compression this.compressionContext = null; this.compressor = WALCellCodec.getNoneCompressor(); } else { - initAfterHeader0(doCompress); + initAfterHeader(doCompress); } } @@ -245,7 +232,7 @@ private WALTrailer buildWALTrailer(WALTrailer.Builder builder) { return builder.build(); } - protected void writeWALTrailer() { + protected final void writeWALTrailer() { try { int trailerSize = 0; if (this.trailer == null) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufWALReader.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufWALReader.java index 3af49107d2cf..f5e65e08c84c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufWALReader.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufWALReader.java @@ -82,10 +82,9 @@ public abstract class AbstractProtobufWALReader static final String WAL_TRAILER_WARN_SIZE = "hbase.regionserver.waltrailer.warn.size"; static final int DEFAULT_WAL_TRAILER_WARN_SIZE = 1024 * 1024; // 1MB - private static final List WRITER_CLS_NAMES = - ImmutableList.of(ProtobufLogWriter.class.getSimpleName(), - AsyncProtobufLogWriter.class.getSimpleName(), SecureProtobufLogWriter.class.getSimpleName(), - SecureAsyncProtobufLogWriter.class.getSimpleName()); + private static final List WRITER_CLS_NAMES = ImmutableList.of( + ProtobufLogWriter.class.getSimpleName(), AsyncProtobufLogWriter.class.getSimpleName(), + "SecureProtobufLogWriter", "SecureAsyncProtobufLogWriter"); protected Configuration conf; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.java index 44affaf734a0..e50a02f6f80d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.java @@ -127,15 +127,6 @@ public AsyncProtobufLogWriter(EventLoopGroup eventLoopGroup, AbstractWALRoller.DEFAULT_WAL_ROLL_WAIT_TIMEOUT); } - /* - * @return class name which is recognized by hbase-1.x to avoid ProtobufLogReader throwing error: - * IOException: Got unknown writer class: AsyncProtobufLogWriter - */ - @Override - protected String getWriterClassName() { - return "ProtobufLogWriter"; - } - @Override public void append(Entry entry) { int buffered = output.buffered(); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.java deleted file mode 100644 index ea56e0926b48..000000000000 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.hadoop.hbase.regionserver.wal; - -import java.io.IOException; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseInterfaceAudience; -import org.apache.hadoop.hbase.io.crypto.Encryptor; -import org.apache.yetus.audience.InterfaceAudience; - -import org.apache.hbase.thirdparty.io.netty.channel.Channel; -import org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup; - -import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader; - -@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG) -public class SecureAsyncProtobufLogWriter extends AsyncProtobufLogWriter { - - private Encryptor encryptor = null; - - public SecureAsyncProtobufLogWriter(EventLoopGroup eventLoopGroup, - Class channelClass) { - super(eventLoopGroup, channelClass); - } - - /* - * @return class name which is recognized by hbase-1.x to avoid ProtobufLogReader throwing error: - * IOException: Got unknown writer class: SecureAsyncProtobufLogWriter - */ - @Override - protected String getWriterClassName() { - return "SecureProtobufLogWriter"; - } - - @Override - protected WALHeader buildWALHeader(Configuration conf, WALHeader.Builder builder) - throws IOException { - return super.buildSecureWALHeader(conf, builder); - } - - @Override - protected void setEncryptor(Encryptor encryptor) { - this.encryptor = encryptor; - } - - @Override - protected void initAfterHeader(boolean doCompress) throws IOException { - super.secureInitAfterHeader(doCompress, encryptor); - } -} diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.java deleted file mode 100644 index 0928f148de0c..000000000000 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.hadoop.hbase.regionserver.wal; - -import java.io.IOException; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseInterfaceAudience; -import org.apache.hadoop.hbase.io.crypto.Encryptor; -import org.apache.yetus.audience.InterfaceAudience; - -import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader; - -@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG) -public class SecureProtobufLogWriter extends ProtobufLogWriter { - - private Encryptor encryptor = null; - - @Override - protected WALHeader buildWALHeader(Configuration conf, WALHeader.Builder builder) - throws IOException { - return super.buildSecureWALHeader(conf, builder); - } - - @Override - protected void setEncryptor(Encryptor encryptor) { - this.encryptor = encryptor; - } - - @Override - protected void initAfterHeader(boolean doCompress) throws IOException { - super.secureInitAfterHeader(doCompress, encryptor); - } -} diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.java index b171a401a2e3..2071d78e843d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.java @@ -49,7 +49,7 @@ public class AsyncFSWALProvider extends AbstractFSWALProvider { private static final Logger LOG = LoggerFactory.getLogger(AsyncFSWALProvider.class); - public static final String WRITER_IMPL = "hbase.regionserver.hlog.async.writer.impl"; + public static final String WRITER_IMPL = "hbase.regionserver.wal.async.writer.impl"; // Only public so classes back in regionserver.wal can access public interface AsyncWriter extends WALProvider.AsyncWriter { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/FSHLogProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/FSHLogProvider.java index 5d63ac2cf458..8384f8f511a8 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/FSHLogProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/FSHLogProvider.java @@ -41,6 +41,8 @@ public class FSHLogProvider extends AbstractFSWALProvider { private static final Logger LOG = LoggerFactory.getLogger(FSHLogProvider.class); + public static final String WRITER_IMPL = "hbase.regionserver.wal.writer.impl"; + // Only public so classes back in regionserver.wal can access public interface Writer extends WALProvider.Writer { /** @@ -71,7 +73,7 @@ public static Writer createWriter(final Configuration conf, final FileSystem fs, final boolean overwritable, long blocksize) throws IOException { // Configuration already does caching for the Class lookup. Class logWriterClass = - conf.getClass("hbase.regionserver.hlog.writer.impl", ProtobufLogWriter.class, Writer.class); + conf.getClass(WRITER_IMPL, ProtobufLogWriter.class, Writer.class); Writer writer = null; try { writer = logWriterClass.getDeclaredConstructor().newInstance(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/InstrumentedLogWriter.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/InstrumentedLogWriter.java index c8d390acfd58..256eebd959c5 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/InstrumentedLogWriter.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/InstrumentedLogWriter.java @@ -27,11 +27,6 @@ public InstrumentedLogWriter() { super(); } - @Override - protected String getWriterClassName() { - return ProtobufLogWriter.class.getSimpleName(); - } - public static boolean activateFailure = false; @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java index 376bec6bf916..606ee55c3159 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java @@ -42,6 +42,7 @@ import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.hadoop.hbase.util.FSTableDescriptors; import org.apache.hadoop.hbase.util.Threads; +import org.apache.hadoop.hbase.wal.FSHLogProvider; import org.apache.hadoop.hbase.wal.WAL; import org.apache.hadoop.hbase.wal.WALEdit; import org.apache.hadoop.hbase.wal.WALFactory; @@ -94,7 +95,7 @@ public void testContendedLogRolling() throws Exception { FSTableDescriptors fsTableDescriptors = new FSTableDescriptors(TEST_UTIL.getConfiguration()); FSTableDescriptors.tryUpdateMetaTableDescriptor(TEST_UTIL.getConfiguration()); TableDescriptor metaTableDescriptor = fsTableDescriptors.get(TableName.META_TABLE_NAME); - conf.set("hbase.regionserver.hlog.writer.impl", HighLatencySyncWriter.class.getName()); + conf.set(FSHLogProvider.WRITER_IMPL, HighLatencySyncWriter.class.getName()); final WALFactory wals = new WALFactory(conf, TestLogRollingNoCluster.class.getName()); final WAL wal = wals.getWAL(null); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureAsyncWALReplay.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureAsyncWALReplay.java index e4184df553a8..b702ef394d52 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureAsyncWALReplay.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureAsyncWALReplay.java @@ -23,7 +23,6 @@ import org.apache.hadoop.hbase.io.crypto.KeyProviderForTesting; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.testclassification.RegionServerTests; -import org.apache.hadoop.hbase.wal.AsyncFSWALProvider.AsyncWriter; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.experimental.categories.Category; @@ -40,8 +39,6 @@ public static void setUpBeforeClass() throws Exception { Configuration conf = AbstractTestWALReplay.TEST_UTIL.getConfiguration(); conf.set(HConstants.CRYPTO_KEYPROVIDER_CONF_KEY, KeyProviderForTesting.class.getName()); conf.set(HConstants.CRYPTO_MASTERKEY_NAME_CONF_KEY, "hbase"); - conf.setClass("hbase.regionserver.hlog.async.writer.impl", SecureAsyncProtobufLogWriter.class, - AsyncWriter.class); conf.setBoolean(HConstants.ENABLE_WAL_ENCRYPTION, true); TestAsyncWALReplay.setUpBeforeClass(); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureWALReplay.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureWALReplay.java index d531707e257c..796996ce180a 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureWALReplay.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureWALReplay.java @@ -23,7 +23,6 @@ import org.apache.hadoop.hbase.io.crypto.KeyProviderForTesting; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.RegionServerTests; -import org.apache.hadoop.hbase.wal.WALProvider.Writer; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.experimental.categories.Category; @@ -40,8 +39,6 @@ public static void setUpBeforeClass() throws Exception { Configuration conf = AbstractTestWALReplay.TEST_UTIL.getConfiguration(); conf.set(HConstants.CRYPTO_KEYPROVIDER_CONF_KEY, KeyProviderForTesting.class.getName()); conf.set(HConstants.CRYPTO_MASTERKEY_NAME_CONF_KEY, "hbase"); - conf.setClass("hbase.regionserver.hlog.writer.impl", SecureProtobufLogWriter.class, - Writer.class); conf.setBoolean(HConstants.ENABLE_WAL_ENCRYPTION, true); AbstractTestWALReplay.setUpBeforeClass(); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/IOTestProvider.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/IOTestProvider.java index 850d115d90d8..64bc1415657a 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/IOTestProvider.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/IOTestProvider.java @@ -250,11 +250,6 @@ public void init(FileSystem fs, Path path, Configuration conf, boolean overwrita super.init(fs, path, conf, overwritable, blocksize, monitor); } - @Override - protected String getWriterClassName() { - return ProtobufLogWriter.class.getSimpleName(); - } - @Override public void append(Entry entry) throws IOException { if (doAppends) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestSecureWAL.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestSecureWAL.java index 7d0506fa8961..75e4b0921f30 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestSecureWAL.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestSecureWAL.java @@ -40,8 +40,6 @@ import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.io.crypto.KeyProviderForTesting; import org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl; -import org.apache.hadoop.hbase.regionserver.wal.SecureAsyncProtobufLogWriter; -import org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogWriter; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.testclassification.RegionServerTests; import org.apache.hadoop.hbase.util.Bytes; @@ -86,10 +84,6 @@ public static void setUpBeforeClass() throws Exception { Configuration conf = TEST_UTIL.getConfiguration(); conf.set(HConstants.CRYPTO_KEYPROVIDER_CONF_KEY, KeyProviderForTesting.class.getName()); conf.set(HConstants.CRYPTO_MASTERKEY_NAME_CONF_KEY, "hbase"); - conf.setClass("hbase.regionserver.hlog.writer.impl", SecureProtobufLogWriter.class, - WALProvider.Writer.class); - conf.setClass("hbase.regionserver.hlog.async.writer.impl", SecureAsyncProtobufLogWriter.class, - WALProvider.AsyncWriter.class); conf.setBoolean(HConstants.ENABLE_WAL_ENCRYPTION, true); CommonFSUtils.setRootDir(conf, TEST_UTIL.getDataTestDirOnTestFS()); TEST_UTIL.startMiniDFSCluster(3); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java index d1092c019229..1823beec784f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java @@ -155,7 +155,8 @@ static enum Corruptions { @BeforeClass public static void setUpBeforeClass() throws Exception { conf = TEST_UTIL.getConfiguration(); - conf.setClass("hbase.regionserver.hlog.writer.impl", InstrumentedLogWriter.class, Writer.class); + conf.set(WALFactory.WAL_PROVIDER, "filesystem"); + conf.setClass(FSHLogProvider.WRITER_IMPL, InstrumentedLogWriter.class, Writer.class); // This is how you turn off shortcircuit read currently. TODO: Fix. Should read config. System.setProperty("hbase.tests.use.shortcircuit.reads", "false"); // Create fake maping user to group and set it to the conf. diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java index d72ab387a52b..fcbbb3cb6996 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java @@ -57,14 +57,12 @@ import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.regionserver.LogRoller; import org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl; -import org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogWriter; import org.apache.hadoop.hbase.regionserver.wal.WALActionsListener; import org.apache.hadoop.hbase.trace.TraceUtil; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.CommonFSUtils; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.hadoop.hbase.util.Threads; -import org.apache.hadoop.hbase.wal.WALProvider.Writer; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; import org.apache.yetus.audience.InterfaceAudience; @@ -257,8 +255,6 @@ public int run(String[] args) throws Exception { Configuration conf = getConf(); conf.set(HConstants.CRYPTO_KEYPROVIDER_CONF_KEY, KeyProviderForTesting.class.getName()); conf.set(HConstants.CRYPTO_MASTERKEY_NAME_CONF_KEY, "hbase"); - conf.setClass("hbase.regionserver.hlog.writer.impl", SecureProtobufLogWriter.class, - Writer.class); conf.setBoolean(HConstants.ENABLE_WAL_ENCRYPTION, true); conf.set(HConstants.CRYPTO_WAL_ALGORITHM_CONF_KEY, cipher); }