This is an automated email from the ASF dual-hosted git repository. vinoyang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-hudi.git
The following commit(s) were added to refs/heads/master by this push: new 078d482 [HUDI-624]: Split some of the code from PR for HUDI-479 (#1344) 078d482 is described below commit 078d4825d909b2c469398f31c97d2290687321a8 Author: Suneel Marthi <smar...@apache.org> AuthorDate: Fri Feb 21 01:22:21 2020 -0500 [HUDI-624]: Split some of the code from PR for HUDI-479 (#1344) --- .../hudi/cli/commands/HoodieLogFileCommand.java | 11 +++---- .../org/apache/hudi/cli/commands/SparkMain.java | 10 +++--- .../java/org/apache/hudi/cli/utils/SparkUtil.java | 5 ++- .../org/apache/hudi/config/HoodieWriteConfig.java | 4 +-- .../org/apache/hudi/func/LazyIterableIterator.java | 2 +- .../hudi/index/bloom/BloomIndexFileInfo.java | 9 +++--- .../org/apache/hudi/io/HoodieAppendHandle.java | 4 +-- .../org/apache/hudi/io/HoodieCommitArchiveLog.java | 8 ++--- .../strategy/BoundedIOCompactionStrategy.java | 5 ++- .../io/compact/strategy/CompactionStrategy.java | 5 ++- .../apache/hudi/metrics/JmxMetricsReporter.java | 4 +-- .../org/apache/hudi/table/RollbackExecutor.java | 6 ++-- .../org/apache/hudi/TestCompactionAdminClient.java | 1 - .../apache/hudi/config/TestHoodieWriteConfig.java | 4 +-- .../hudi/index/bloom/TestHoodieBloomIndex.java | 22 ++++++------- .../index/bloom/TestHoodieGlobalBloomIndex.java | 10 +++--- .../org/apache/hudi/common/model/HoodieKey.java | 7 ++--- .../org/apache/hudi/common/model/HoodieRecord.java | 8 ++--- .../hudi/common/model/HoodieRecordLocation.java | 7 ++--- .../hudi/common/util/BufferedRandomAccessFile.java | 6 +--- .../java/org/apache/hudi/common/util/FSUtils.java | 3 +- .../hudi/common/util/ObjectSizeCalculator.java | 36 +++++++++++----------- .../log/TestHoodieLogFormatAppendFailure.java | 4 +-- .../table/string/TestHoodieActiveTimeline.java | 1 - .../table/view/TestHoodieTableFileSystemView.java | 5 ++- .../hudi/common/util/TestCompactionUtils.java | 21 ++++++------- .../org/apache/hudi/hive/SchemaDifference.java | 28 +++++++++-------- .../java/org/apache/hudi/hive/util/SchemaUtil.java | 8 ++--- .../org/apache/hudi/hive/TestHiveSyncTool.java | 3 +- .../test/java/org/apache/hudi/hive/TestUtil.java | 15 ++++----- .../org/apache/hudi/utilities/UtilHelpers.java | 9 +++--- 31 files changed, 130 insertions(+), 141 deletions(-) diff --git a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/HoodieLogFileCommand.java b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/HoodieLogFileCommand.java index 8a50309..2bb87e0 100644 --- a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/HoodieLogFileCommand.java +++ b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/HoodieLogFileCommand.java @@ -38,8 +38,6 @@ import org.apache.hudi.config.HoodieCompactionConfig; import org.apache.hudi.config.HoodieMemoryConfig; import org.apache.hudi.hive.util.SchemaUtil; -import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.avro.Schema; @@ -59,6 +57,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import scala.Tuple2; @@ -85,14 +84,14 @@ public class HoodieLogFileCommand implements CommandMarker { List<String> logFilePaths = Arrays.stream(fs.globStatus(new Path(logFilePathPattern))) .map(status -> status.getPath().toString()).collect(Collectors.toList()); Map<String, List<Tuple3<HoodieLogBlockType, Tuple2<Map<HeaderMetadataType, String>, Map<HeaderMetadataType, String>>, Integer>>> commitCountAndMetadata = - Maps.newHashMap(); + new HashMap<>(); int numCorruptBlocks = 0; int dummyInstantTimeCount = 0; for (String logFilePath : logFilePaths) { FileStatus[] fsStatus = fs.listStatus(new Path(logFilePath)); Schema writerSchema = new AvroSchemaConverter() - .convert(Preconditions.checkNotNull(SchemaUtil.readSchemaFromLogFile(fs, new Path(logFilePath)))); + .convert(Objects.requireNonNull(SchemaUtil.readSchemaFromLogFile(fs, new Path(logFilePath)))); Reader reader = HoodieLogFormat.newReader(fs, new HoodieLogFile(fsStatus[0].getPath()), writerSchema); // read the avro blocks @@ -181,7 +180,7 @@ public class HoodieLogFileCommand implements CommandMarker { AvroSchemaConverter converter = new AvroSchemaConverter(); // get schema from last log file Schema readerSchema = - converter.convert(Preconditions.checkNotNull(SchemaUtil.readSchemaFromLogFile(fs, new Path(logFilePaths.get(logFilePaths.size() - 1))))); + converter.convert(Objects.requireNonNull(SchemaUtil.readSchemaFromLogFile(fs, new Path(logFilePaths.get(logFilePaths.size() - 1))))); List<IndexedRecord> allRecords = new ArrayList<>(); @@ -204,7 +203,7 @@ public class HoodieLogFileCommand implements CommandMarker { } else { for (String logFile : logFilePaths) { Schema writerSchema = new AvroSchemaConverter() - .convert(Preconditions.checkNotNull(SchemaUtil.readSchemaFromLogFile(client.getFs(), new Path(logFile)))); + .convert(Objects.requireNonNull(SchemaUtil.readSchemaFromLogFile(client.getFs(), new Path(logFile)))); HoodieLogFormat.Reader reader = HoodieLogFormat.newReader(fs, new HoodieLogFile(new Path(logFile)), writerSchema); // read the avro blocks diff --git a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SparkMain.java b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SparkMain.java index 13d1c8b..b0771c2 100644 --- a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SparkMain.java +++ b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SparkMain.java @@ -18,11 +18,11 @@ package org.apache.hudi.cli.commands; -import com.google.common.base.Strings; import org.apache.hudi.HoodieWriteClient; import org.apache.hudi.cli.DedupeSparkJob; import org.apache.hudi.cli.utils.SparkUtil; import org.apache.hudi.common.util.FSUtils; +import org.apache.hudi.common.util.StringUtils; import org.apache.hudi.config.HoodieIndexConfig; import org.apache.hudi.config.HoodieWriteConfig; import org.apache.hudi.index.HoodieIndex; @@ -81,7 +81,7 @@ public class SparkMain { case UPSERT: assert (args.length >= 12); String propsFilePath = null; - if (!Strings.isNullOrEmpty(args[11])) { + if (!StringUtils.isNullOrEmpty(args[11])) { propsFilePath = args[11]; } List<String> configs = new ArrayList<>(); @@ -94,7 +94,7 @@ public class SparkMain { case COMPACT_RUN: assert (args.length >= 9); propsFilePath = null; - if (!Strings.isNullOrEmpty(args[8])) { + if (!StringUtils.isNullOrEmpty(args[8])) { propsFilePath = args[8]; } configs = new ArrayList<>(); @@ -107,7 +107,7 @@ public class SparkMain { case COMPACT_SCHEDULE: assert (args.length >= 6); propsFilePath = null; - if (!Strings.isNullOrEmpty(args[5])) { + if (!StringUtils.isNullOrEmpty(args[5])) { propsFilePath = args[5]; } configs = new ArrayList<>(); @@ -142,7 +142,7 @@ public class SparkMain { case CLEAN: assert (args.length >= 5); propsFilePath = null; - if (!Strings.isNullOrEmpty(args[3])) { + if (!StringUtils.isNullOrEmpty(args[3])) { propsFilePath = args[3]; } configs = new ArrayList<>(); diff --git a/hudi-cli/src/main/java/org/apache/hudi/cli/utils/SparkUtil.java b/hudi-cli/src/main/java/org/apache/hudi/cli/utils/SparkUtil.java index b71a979..e7ae6f4 100644 --- a/hudi-cli/src/main/java/org/apache/hudi/cli/utils/SparkUtil.java +++ b/hudi-cli/src/main/java/org/apache/hudi/cli/utils/SparkUtil.java @@ -24,8 +24,6 @@ import org.apache.hudi.cli.commands.SparkMain; import org.apache.hudi.common.util.FSUtils; import org.apache.hudi.common.util.StringUtils; -import com.google.common.base.Preconditions; - import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.launcher.SparkLauncher; @@ -33,6 +31,7 @@ import org.apache.spark.launcher.SparkLauncher; import java.io.File; import java.net.URISyntaxException; import java.util.Map; +import java.util.Objects; /** * Utility functions dealing with Spark. @@ -55,7 +54,7 @@ public class SparkUtil { sparkLauncher.setPropertiesFile(propertiesFile); } File libDirectory = new File(new File(currentJar).getParent(), "lib"); - for (String library : Preconditions.checkNotNull(libDirectory.list())) { + for (String library : Objects.requireNonNull(libDirectory.list())) { sparkLauncher.addJar(new File(libDirectory, library).getAbsolutePath()); } return sparkLauncher; diff --git a/hudi-client/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java b/hudi-client/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java index 642384b..e4e89df 100644 --- a/hudi-client/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java +++ b/hudi-client/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java @@ -29,7 +29,6 @@ import org.apache.hudi.index.HoodieIndex; import org.apache.hudi.io.compact.strategy.CompactionStrategy; import org.apache.hudi.metrics.MetricsReporterType; -import com.google.common.base.Preconditions; import org.apache.parquet.hadoop.metadata.CompressionCodecName; import org.apache.spark.storage.StorageLevel; @@ -40,6 +39,7 @@ import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.util.Map; +import java.util.Objects; import java.util.Properties; /** @@ -764,7 +764,7 @@ public class HoodieWriteConfig extends DefaultHoodieConfig { // Build WriteConfig at the end HoodieWriteConfig config = new HoodieWriteConfig(props); - Preconditions.checkArgument(config.getBasePath() != null); + Objects.requireNonNull(config.getBasePath()); return config; } } diff --git a/hudi-client/src/main/java/org/apache/hudi/func/LazyIterableIterator.java b/hudi-client/src/main/java/org/apache/hudi/func/LazyIterableIterator.java index fe5bfbc..2b02224 100644 --- a/hudi-client/src/main/java/org/apache/hudi/func/LazyIterableIterator.java +++ b/hudi-client/src/main/java/org/apache/hudi/func/LazyIterableIterator.java @@ -33,7 +33,7 @@ import java.util.Iterator; */ public abstract class LazyIterableIterator<I, O> implements Iterable<O>, Iterator<O> { - protected Iterator<I> inputItr = null; + protected Iterator<I> inputItr; private boolean consumed = false; private boolean startCalled = false; private boolean endCalled = false; diff --git a/hudi-client/src/main/java/org/apache/hudi/index/bloom/BloomIndexFileInfo.java b/hudi-client/src/main/java/org/apache/hudi/index/bloom/BloomIndexFileInfo.java index c041814..ebd20dc 100644 --- a/hudi-client/src/main/java/org/apache/hudi/index/bloom/BloomIndexFileInfo.java +++ b/hudi-client/src/main/java/org/apache/hudi/index/bloom/BloomIndexFileInfo.java @@ -18,9 +18,8 @@ package org.apache.hudi.index.bloom; -import com.google.common.base.Objects; - import java.io.Serializable; +import java.util.Objects; /** * Metadata about a given file group, useful for index lookup. @@ -80,14 +79,14 @@ public class BloomIndexFileInfo implements Serializable { } BloomIndexFileInfo that = (BloomIndexFileInfo) o; - return Objects.equal(that.fileId, fileId) && Objects.equal(that.minRecordKey, minRecordKey) - && Objects.equal(that.maxRecordKey, maxRecordKey); + return Objects.equals(that.fileId, fileId) && Objects.equals(that.minRecordKey, minRecordKey) + && Objects.equals(that.maxRecordKey, maxRecordKey); } @Override public int hashCode() { - return Objects.hashCode(fileId, minRecordKey, maxRecordKey); + return Objects.hash(fileId, minRecordKey, maxRecordKey); } @Override diff --git a/hudi-client/src/main/java/org/apache/hudi/io/HoodieAppendHandle.java b/hudi-client/src/main/java/org/apache/hudi/io/HoodieAppendHandle.java index d37e11f..674fd9a 100644 --- a/hudi-client/src/main/java/org/apache/hudi/io/HoodieAppendHandle.java +++ b/hudi-client/src/main/java/org/apache/hudi/io/HoodieAppendHandle.java @@ -44,7 +44,6 @@ import org.apache.hudi.exception.HoodieAppendException; import org.apache.hudi.exception.HoodieUpsertException; import org.apache.hudi.table.HoodieTable; -import com.google.common.collect.Maps; import org.apache.avro.generic.GenericRecord; import org.apache.avro.generic.IndexedRecord; import org.apache.hadoop.fs.Path; @@ -56,6 +55,7 @@ import org.apache.spark.util.SizeEstimator; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicLong; @@ -97,7 +97,7 @@ public class HoodieAppendHandle<T extends HoodieRecordPayload> extends HoodieWri // Max block size to limit to for a log block private int maxBlockSize = config.getLogFileDataBlockMaxSize(); // Header metadata for a log block - private Map<HeaderMetadataType, String> header = Maps.newHashMap(); + private Map<HeaderMetadataType, String> header = new HashMap<>(); // Total number of new records inserted into the delta file private long insertRecordsWritten = 0; diff --git a/hudi-client/src/main/java/org/apache/hudi/io/HoodieCommitArchiveLog.java b/hudi-client/src/main/java/org/apache/hudi/io/HoodieCommitArchiveLog.java index 6847a24..2d2d1e3 100644 --- a/hudi-client/src/main/java/org/apache/hudi/io/HoodieCommitArchiveLog.java +++ b/hudi-client/src/main/java/org/apache/hudi/io/HoodieCommitArchiveLog.java @@ -49,8 +49,6 @@ import org.apache.hudi.table.HoodieTable; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import org.apache.avro.Schema; import org.apache.avro.generic.IndexedRecord; import org.apache.hadoop.fs.Path; @@ -61,7 +59,9 @@ import org.apache.spark.api.java.JavaSparkContext; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -145,7 +145,7 @@ public class HoodieCommitArchiveLog { // TODO: Handle ROLLBACK_ACTION in future // ROLLBACK_ACTION is currently not defined in HoodieActiveTimeline HoodieTimeline cleanAndRollbackTimeline = table.getActiveTimeline() - .getTimelineOfActions(Sets.newHashSet(HoodieTimeline.CLEAN_ACTION)).filterCompletedInstants(); + .getTimelineOfActions(Collections.singleton(HoodieTimeline.CLEAN_ACTION)).filterCompletedInstants(); Stream<HoodieInstant> instants = cleanAndRollbackTimeline.getInstants() .collect(Collectors.groupingBy(HoodieInstant::getAction)).values().stream().map(hoodieInstants -> { if (hoodieInstants.size() > maxCommitsToKeep) { @@ -270,7 +270,7 @@ public class HoodieCommitArchiveLog { private void writeToFile(Schema wrapperSchema, List<IndexedRecord> records) throws Exception { if (records.size() > 0) { - Map<HeaderMetadataType, String> header = Maps.newHashMap(); + Map<HeaderMetadataType, String> header = new HashMap<>(); header.put(HoodieLogBlock.HeaderMetadataType.SCHEMA, wrapperSchema.toString()); HoodieAvroDataBlock block = new HoodieAvroDataBlock(records, header); this.writer = writer.appendBlock(block); diff --git a/hudi-client/src/main/java/org/apache/hudi/io/compact/strategy/BoundedIOCompactionStrategy.java b/hudi-client/src/main/java/org/apache/hudi/io/compact/strategy/BoundedIOCompactionStrategy.java index c84df1b..8976d22 100644 --- a/hudi-client/src/main/java/org/apache/hudi/io/compact/strategy/BoundedIOCompactionStrategy.java +++ b/hudi-client/src/main/java/org/apache/hudi/io/compact/strategy/BoundedIOCompactionStrategy.java @@ -22,8 +22,7 @@ import org.apache.hudi.avro.model.HoodieCompactionOperation; import org.apache.hudi.avro.model.HoodieCompactionPlan; import org.apache.hudi.config.HoodieWriteConfig; -import com.google.common.collect.Lists; - +import java.util.ArrayList; import java.util.List; /** @@ -40,7 +39,7 @@ public class BoundedIOCompactionStrategy extends CompactionStrategy { // Iterate through the operations in order and accept operations as long as we are within the // IO limit // Preserves the original ordering of compactions - List<HoodieCompactionOperation> finalOperations = Lists.newArrayList(); + List<HoodieCompactionOperation> finalOperations = new ArrayList<>(); long targetIORemaining = writeConfig.getTargetIOPerCompactionInMB(); for (HoodieCompactionOperation op : operations) { long opIo = op.getMetrics().get(TOTAL_IO_MB).longValue(); diff --git a/hudi-client/src/main/java/org/apache/hudi/io/compact/strategy/CompactionStrategy.java b/hudi-client/src/main/java/org/apache/hudi/io/compact/strategy/CompactionStrategy.java index dd17212..9e36b4f 100644 --- a/hudi-client/src/main/java/org/apache/hudi/io/compact/strategy/CompactionStrategy.java +++ b/hudi-client/src/main/java/org/apache/hudi/io/compact/strategy/CompactionStrategy.java @@ -28,9 +28,8 @@ import org.apache.hudi.common.util.Option; import org.apache.hudi.config.HoodieWriteConfig; import org.apache.hudi.io.compact.HoodieMergeOnReadTableCompactor; -import com.google.common.collect.Maps; - import java.io.Serializable; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -61,7 +60,7 @@ public abstract class CompactionStrategy implements Serializable { */ public Map<String, Double> captureMetrics(HoodieWriteConfig writeConfig, Option<HoodieBaseFile> dataFile, String partitionPath, List<HoodieLogFile> logFiles) { - Map<String, Double> metrics = Maps.newHashMap(); + Map<String, Double> metrics = new HashMap<>(); long defaultMaxParquetFileSize = writeConfig.getParquetMaxFileSize(); // Total size of all the log files Long totalLogFileSize = logFiles.stream().map(HoodieLogFile::getFileSize).filter(size -> size >= 0) diff --git a/hudi-client/src/main/java/org/apache/hudi/metrics/JmxMetricsReporter.java b/hudi-client/src/main/java/org/apache/hudi/metrics/JmxMetricsReporter.java index 2559a4b..921dcea 100644 --- a/hudi-client/src/main/java/org/apache/hudi/metrics/JmxMetricsReporter.java +++ b/hudi-client/src/main/java/org/apache/hudi/metrics/JmxMetricsReporter.java @@ -21,7 +21,6 @@ package org.apache.hudi.metrics; import org.apache.hudi.config.HoodieWriteConfig; import org.apache.hudi.exception.HoodieException; -import com.google.common.base.Preconditions; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; @@ -32,6 +31,7 @@ import javax.management.remote.JMXServiceURL; import java.io.Closeable; import java.lang.management.ManagementFactory; import java.rmi.registry.LocateRegistry; +import java.util.Objects; /** * Implementation of Jmx reporter, which used to report jmx metric. @@ -67,7 +67,7 @@ public class JmxMetricsReporter extends MetricsReporter { @Override public void start() { try { - Preconditions.checkNotNull(connector, "Cannot start as the jmxReporter is null."); + Objects.requireNonNull(connector, "Cannot start as the jmxReporter is null."); connector.start(); } catch (Exception e) { throw new HoodieException(e); diff --git a/hudi-client/src/main/java/org/apache/hudi/table/RollbackExecutor.java b/hudi-client/src/main/java/org/apache/hudi/table/RollbackExecutor.java index 0f3297c..fac08b0 100644 --- a/hudi-client/src/main/java/org/apache/hudi/table/RollbackExecutor.java +++ b/hudi-client/src/main/java/org/apache/hudi/table/RollbackExecutor.java @@ -32,7 +32,6 @@ import org.apache.hudi.config.HoodieWriteConfig; import org.apache.hudi.exception.HoodieRollbackException; import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.PathFilter; @@ -47,6 +46,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import scala.Tuple2; @@ -129,7 +129,7 @@ public class RollbackExecutor implements Serializable { // getFileStatus would reflect correct stats and FileNotFoundException is not thrown in // cloud-storage : HUDI-168 Map<FileStatus, Long> filesToNumBlocksRollback = new HashMap<>(); - filesToNumBlocksRollback.put(metaClient.getFs().getFileStatus(Preconditions.checkNotNull(writer).getLogFile().getPath()), 1L); + filesToNumBlocksRollback.put(metaClient.getFs().getFileStatus(Objects.requireNonNull(writer).getLogFile().getPath()), 1L); return new Tuple2<>(rollbackRequest.getPartitionPath(), HoodieRollbackStat.newBuilder().withPartitionPath(rollbackRequest.getPartitionPath()) .withRollbackBlockAppendResults(filesToNumBlocksRollback).build()); @@ -215,7 +215,7 @@ public class RollbackExecutor implements Serializable { private Map<HeaderMetadataType, String> generateHeader(String commit) { // generate metadata - Map<HeaderMetadataType, String> header = Maps.newHashMap(); + Map<HeaderMetadataType, String> header = new HashMap<>(); header.put(HeaderMetadataType.INSTANT_TIME, metaClient.getActiveTimeline().lastInstant().get().getTimestamp()); header.put(HeaderMetadataType.TARGET_INSTANT_TIME, commit); header.put(HeaderMetadataType.COMMAND_BLOCK_TYPE, diff --git a/hudi-client/src/test/java/org/apache/hudi/TestCompactionAdminClient.java b/hudi-client/src/test/java/org/apache/hudi/TestCompactionAdminClient.java index 0ed435c..ef14235 100644 --- a/hudi-client/src/test/java/org/apache/hudi/TestCompactionAdminClient.java +++ b/hudi-client/src/test/java/org/apache/hudi/TestCompactionAdminClient.java @@ -32,7 +32,6 @@ import org.apache.hudi.common.util.Option; import org.apache.hudi.common.util.collection.Pair; import org.apache.hudi.exception.HoodieException; import org.apache.hudi.exception.HoodieIOException; - import org.apache.hudi.func.OperationResult; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; diff --git a/hudi-client/src/test/java/org/apache/hudi/config/TestHoodieWriteConfig.java b/hudi-client/src/test/java/org/apache/hudi/config/TestHoodieWriteConfig.java index e2d2a6c..80b59a0 100644 --- a/hudi-client/src/test/java/org/apache/hudi/config/TestHoodieWriteConfig.java +++ b/hudi-client/src/test/java/org/apache/hudi/config/TestHoodieWriteConfig.java @@ -20,13 +20,13 @@ package org.apache.hudi.config; import org.apache.hudi.config.HoodieWriteConfig.Builder; -import com.google.common.collect.Maps; import org.junit.Test; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Date; +import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -37,7 +37,7 @@ public class TestHoodieWriteConfig { @Test public void testPropertyLoading() throws IOException { Builder builder = HoodieWriteConfig.newBuilder().withPath("/tmp"); - Map<String, String> params = Maps.newHashMap(); + Map<String, String> params = new HashMap<>(); params.put(HoodieCompactionConfig.CLEANER_COMMITS_RETAINED_PROP, "1"); params.put(HoodieCompactionConfig.MAX_COMMITS_TO_KEEP_PROP, "5"); params.put(HoodieCompactionConfig.MIN_COMMITS_TO_KEEP_PROP, "2"); diff --git a/hudi-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieBloomIndex.java b/hudi-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieBloomIndex.java index 8bbd527..3e3ea02 100644 --- a/hudi-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieBloomIndex.java +++ b/hudi-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieBloomIndex.java @@ -37,7 +37,6 @@ import org.apache.hudi.config.HoodieWriteConfig; import org.apache.hudi.io.HoodieKeyLookupHandle; import org.apache.hudi.table.HoodieTable; -import com.google.common.collect.Lists; import org.apache.avro.Schema; import org.apache.hadoop.fs.Path; import org.apache.spark.api.java.JavaPairRDD; @@ -50,6 +49,7 @@ import org.junit.runners.Parameterized; import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -149,11 +149,11 @@ public class TestHoodieBloomIndex extends HoodieClientTestHarness { HoodieRecord record4 = new HoodieRecord(new HoodieKey(rowChange4.getRowKey(), rowChange4.getPartitionPath()), rowChange4); - HoodieClientTestUtils.writeParquetFile(basePath, "2016/04/01", "2_0_20160401010101.parquet", Lists.newArrayList(), + HoodieClientTestUtils.writeParquetFile(basePath, "2016/04/01", "2_0_20160401010101.parquet", new ArrayList<>(), schema, null, false); - HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", "1_0_20150312101010.parquet", Lists.newArrayList(), + HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", "1_0_20150312101010.parquet", new ArrayList<>(), schema, null, false); - HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", "3_0_20150312101010.parquet", Arrays.asList(record1), + HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", "3_0_20150312101010.parquet", Collections.singletonList(record1), schema, null, false); HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", "4_0_20150312101010.parquet", Arrays.asList(record2, record3, record4), schema, null, false); @@ -337,11 +337,11 @@ public class TestHoodieBloomIndex extends HoodieClientTestHarness { // We create three parquet file, each having one record. (two different partitions) String filename1 = - HoodieClientTestUtils.writeParquetFile(basePath, "2016/01/31", Arrays.asList(record1), schema, null, true); + HoodieClientTestUtils.writeParquetFile(basePath, "2016/01/31", Collections.singletonList(record1), schema, null, true); String filename2 = - HoodieClientTestUtils.writeParquetFile(basePath, "2016/01/31", Arrays.asList(record2), schema, null, true); + HoodieClientTestUtils.writeParquetFile(basePath, "2016/01/31", Collections.singletonList(record2), schema, null, true); String filename3 = - HoodieClientTestUtils.writeParquetFile(basePath, "2015/01/31", Arrays.asList(record4), schema, null, true); + HoodieClientTestUtils.writeParquetFile(basePath, "2015/01/31", Collections.singletonList(record4), schema, null, true); // We do the tag again metaClient = HoodieTableMetaClient.reload(metaClient); @@ -353,14 +353,14 @@ public class TestHoodieBloomIndex extends HoodieClientTestHarness { for (HoodieRecord record : taggedRecordRDD.collect()) { if (record.getRecordKey().equals(rowKey1)) { if (record.getPartitionPath().equals("2015/01/31")) { - assertTrue(record.getCurrentLocation().getFileId().equals(FSUtils.getFileId(filename3))); + assertEquals(record.getCurrentLocation().getFileId(), FSUtils.getFileId(filename3)); } else { - assertTrue(record.getCurrentLocation().getFileId().equals(FSUtils.getFileId(filename1))); + assertEquals(record.getCurrentLocation().getFileId(), FSUtils.getFileId(filename1)); } } else if (record.getRecordKey().equals(rowKey2)) { - assertTrue(record.getCurrentLocation().getFileId().equals(FSUtils.getFileId(filename2))); + assertEquals(record.getCurrentLocation().getFileId(), FSUtils.getFileId(filename2)); } else if (record.getRecordKey().equals(rowKey3)) { - assertTrue(!record.isCurrentLocationKnown()); + assertFalse(record.isCurrentLocationKnown()); } } } diff --git a/hudi-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieGlobalBloomIndex.java b/hudi-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieGlobalBloomIndex.java index 15e77f4..6d4e67f 100644 --- a/hudi-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieGlobalBloomIndex.java +++ b/hudi-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieGlobalBloomIndex.java @@ -33,7 +33,6 @@ import org.apache.hudi.config.HoodieIndexConfig; import org.apache.hudi.config.HoodieWriteConfig; import org.apache.hudi.table.HoodieTable; -import com.google.common.collect.Lists; import org.apache.avro.Schema; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD; @@ -43,6 +42,7 @@ import org.junit.Test; import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; @@ -117,11 +117,11 @@ public class TestHoodieGlobalBloomIndex extends HoodieClientTestHarness { HoodieRecord record4 = new HoodieRecord(new HoodieKey(rowChange4.getRowKey(), rowChange4.getPartitionPath()), rowChange4); - HoodieClientTestUtils.writeParquetFile(basePath, "2016/04/01", "2_0_20160401010101.parquet", Lists.newArrayList(), + HoodieClientTestUtils.writeParquetFile(basePath, "2016/04/01", "2_0_20160401010101.parquet", new ArrayList<>(), schema, null, false); - HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", "1_0_20150312101010.parquet", Lists.newArrayList(), + HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", "1_0_20150312101010.parquet", new ArrayList<>(), schema, null, false); - HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", "3_0_20150312101010.parquet", Arrays.asList(record1), + HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", "3_0_20150312101010.parquet", Collections.singletonList(record1), schema, null, false); HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", "4_0_20150312101010.parquet", Arrays.asList(record2, record3, record4), schema, null, false); @@ -252,7 +252,7 @@ public class TestHoodieGlobalBloomIndex extends HoodieClientTestHarness { HoodieClientTestUtils.writeParquetFile(basePath, "2016/04/01", Collections.singletonList(record1), schema, null, false); String filename1 = - HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", Lists.newArrayList(), + HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", new ArrayList<>(), schema, null, false); String filename2 = HoodieClientTestUtils.writeParquetFile(basePath, "2015/03/12", Collections.singletonList(record2), diff --git a/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieKey.java b/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieKey.java index 22a05fa..a9401c9 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieKey.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieKey.java @@ -18,9 +18,8 @@ package org.apache.hudi.common.model; -import com.google.common.base.Objects; - import java.io.Serializable; +import java.util.Objects; /** * HoodieKey consists of @@ -58,12 +57,12 @@ public class HoodieKey implements Serializable { return false; } HoodieKey otherKey = (HoodieKey) o; - return Objects.equal(recordKey, otherKey.recordKey) && Objects.equal(partitionPath, otherKey.partitionPath); + return Objects.equals(recordKey, otherKey.recordKey) && Objects.equals(partitionPath, otherKey.partitionPath); } @Override public int hashCode() { - return Objects.hashCode(recordKey, partitionPath); + return Objects.hash(recordKey, partitionPath); } @Override diff --git a/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieRecord.java b/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieRecord.java index 3f1e95a..843cc70 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieRecord.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieRecord.java @@ -20,11 +20,11 @@ package org.apache.hudi.common.model; import org.apache.hudi.common.util.Option; -import com.google.common.base.Objects; import com.google.common.collect.ImmutableList; import java.io.Serializable; import java.util.List; +import java.util.Objects; /** * A Single Record managed by Hoodie. @@ -141,13 +141,13 @@ public class HoodieRecord<T extends HoodieRecordPayload> implements Serializable return false; } HoodieRecord that = (HoodieRecord) o; - return Objects.equal(key, that.key) && Objects.equal(data, that.data) - && Objects.equal(currentLocation, that.currentLocation) && Objects.equal(newLocation, that.newLocation); + return Objects.equals(key, that.key) && Objects.equals(data, that.data) + && Objects.equals(currentLocation, that.currentLocation) && Objects.equals(newLocation, that.newLocation); } @Override public int hashCode() { - return Objects.hashCode(key, data, currentLocation, newLocation); + return Objects.hash(key, data, currentLocation, newLocation); } @Override diff --git a/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieRecordLocation.java b/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieRecordLocation.java index 2c522d1..690db88 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieRecordLocation.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieRecordLocation.java @@ -18,9 +18,8 @@ package org.apache.hudi.common.model; -import com.google.common.base.Objects; - import java.io.Serializable; +import java.util.Objects; /** * Location of a HoodieRecord within the partition it belongs to. Ultimately, this points to an actual file on disk @@ -44,12 +43,12 @@ public class HoodieRecordLocation implements Serializable { return false; } HoodieRecordLocation otherLoc = (HoodieRecordLocation) o; - return Objects.equal(instantTime, otherLoc.instantTime) && Objects.equal(fileId, otherLoc.fileId); + return Objects.equals(instantTime, otherLoc.instantTime) && Objects.equals(fileId, otherLoc.fileId); } @Override public int hashCode() { - return Objects.hashCode(instantTime, fileId); + return Objects.hash(instantTime, fileId); } @Override diff --git a/hudi-common/src/main/java/org/apache/hudi/common/util/BufferedRandomAccessFile.java b/hudi-common/src/main/java/org/apache/hudi/common/util/BufferedRandomAccessFile.java index 15cf4c3..f40a46e 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/util/BufferedRandomAccessFile.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/util/BufferedRandomAccessFile.java @@ -268,11 +268,7 @@ public final class BufferedRandomAccessFile extends RandomAccessFile { this.seek(this.currentPosition); // if currentPosition is at start, EOF has been reached - if (this.currentPosition == this.validLastPosition) { - return false; - } - - return true; + return this.currentPosition != this.validLastPosition; } /** diff --git a/hudi-common/src/main/java/org/apache/hudi/common/util/FSUtils.java b/hudi-common/src/main/java/org/apache/hudi/common/util/FSUtils.java index 3cc7bf2..9ffc38c 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/util/FSUtils.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/util/FSUtils.java @@ -47,6 +47,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.Objects; import java.util.Map.Entry; import java.util.UUID; import java.util.function.Function; @@ -248,7 +249,7 @@ public class FSUtils { } public static String getFileExtension(String fullName) { - Preconditions.checkNotNull(fullName); + Objects.requireNonNull(fullName); String fileName = (new File(fullName)).getName(); int dotIndex = fileName.indexOf('.'); return dotIndex == -1 ? "" : fileName.substring(dotIndex); diff --git a/hudi-common/src/main/java/org/apache/hudi/common/util/ObjectSizeCalculator.java b/hudi-common/src/main/java/org/apache/hudi/common/util/ObjectSizeCalculator.java index 1898a4e..7609316 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/util/ObjectSizeCalculator.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/util/ObjectSizeCalculator.java @@ -16,12 +16,6 @@ package org.apache.hudi.common.util; -import com.google.common.base.Preconditions; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; -import com.google.common.collect.Sets; - import java.lang.management.ManagementFactory; import java.lang.management.MemoryPoolMXBean; import java.lang.reflect.Array; @@ -29,9 +23,13 @@ import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayDeque; import java.util.Arrays; +import java.util.Collections; import java.util.Deque; +import java.util.IdentityHashMap; import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.Set; /** @@ -121,16 +119,9 @@ public class ObjectSizeCalculator { // added. private final int superclassFieldPadding; - private final LoadingCache<Class<?>, ClassSizeInfo> classSizeInfos = - CacheBuilder.newBuilder().build(new CacheLoader<Class<?>, ClassSizeInfo>() { - @Override - public ClassSizeInfo load(Class<?> clazz) { - return new ClassSizeInfo(clazz); - } - }); - + private final Map<Class<?>, ClassSizeInfo> classSizeInfos = new IdentityHashMap<>(); - private final Set<Object> alreadyVisited = Sets.newIdentityHashSet(); + private final Set<Object> alreadyVisited = Collections.newSetFromMap(new IdentityHashMap<>()); private final Deque<Object> pending = new ArrayDeque<>(16 * 1024); private long size; @@ -140,7 +131,7 @@ public class ObjectSizeCalculator { * @param memoryLayoutSpecification a description of the JVM memory layout. */ public ObjectSizeCalculator(MemoryLayoutSpecification memoryLayoutSpecification) { - Preconditions.checkNotNull(memoryLayoutSpecification); + Objects.requireNonNull(memoryLayoutSpecification); arrayHeaderSize = memoryLayoutSpecification.getArrayHeaderSize(); objectHeaderSize = memoryLayoutSpecification.getObjectHeaderSize(); objectPadding = memoryLayoutSpecification.getObjectPadding(); @@ -175,6 +166,15 @@ public class ObjectSizeCalculator { } } + private ClassSizeInfo getClassSizeInfo(final Class<?> clazz) { + ClassSizeInfo csi = classSizeInfos.get(clazz); + if (csi == null) { + csi = new ClassSizeInfo(clazz); + classSizeInfos.put(clazz, csi); + } + return csi; + } + private void visit(Object obj) { if (alreadyVisited.contains(obj)) { return; @@ -187,7 +187,7 @@ public class ObjectSizeCalculator { if (clazz.isArray()) { visitArray(obj); } else { - classSizeInfos.getUnchecked(clazz).visit(obj, this); + getClassSizeInfo(clazz).visit(obj, this); } } } @@ -282,7 +282,7 @@ public class ObjectSizeCalculator { } final Class<?> superClass = clazz.getSuperclass(); if (superClass != null) { - final ClassSizeInfo superClassInfo = classSizeInfos.getUnchecked(superClass); + final ClassSizeInfo superClassInfo = getClassSizeInfo(superClass); fieldsSize += roundTo(superClassInfo.fieldsSize, superclassFieldPadding); referenceFields.addAll(Arrays.asList(superClassInfo.referenceFields)); } diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/log/TestHoodieLogFormatAppendFailure.java b/hudi-common/src/test/java/org/apache/hudi/common/table/log/TestHoodieLogFormatAppendFailure.java index f09db9e..4acdf07 100644 --- a/hudi-common/src/test/java/org/apache/hudi/common/table/log/TestHoodieLogFormatAppendFailure.java +++ b/hudi-common/src/test/java/org/apache/hudi/common/table/log/TestHoodieLogFormatAppendFailure.java @@ -25,7 +25,6 @@ import org.apache.hudi.common.table.log.block.HoodieAvroDataBlock; import org.apache.hudi.common.table.log.block.HoodieLogBlock; import org.apache.hudi.common.util.SchemaTestUtil; -import com.google.common.collect.Maps; import org.apache.avro.generic.IndexedRecord; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; @@ -45,6 +44,7 @@ import org.junit.Test; import java.io.File; import java.io.IOException; import java.net.URISyntaxException; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; @@ -97,7 +97,7 @@ public class TestHoodieLogFormatAppendFailure { // Some data & append. List<IndexedRecord> records = SchemaTestUtil.generateTestRecords(0, 10); - Map<HoodieLogBlock.HeaderMetadataType, String> header = Maps.newHashMap(); + Map<HoodieLogBlock.HeaderMetadataType, String> header = new HashMap<>(2); header.put(HoodieLogBlock.HeaderMetadataType.INSTANT_TIME, "100"); header.put(HoodieLogBlock.HeaderMetadataType.SCHEMA, getSimpleSchema().toString()); HoodieAvroDataBlock dataBlock = new HoodieAvroDataBlock(records, header); diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/string/TestHoodieActiveTimeline.java b/hudi-common/src/test/java/org/apache/hudi/common/table/string/TestHoodieActiveTimeline.java index c416c21..d77392f 100755 --- a/hudi-common/src/test/java/org/apache/hudi/common/table/string/TestHoodieActiveTimeline.java +++ b/hudi-common/src/test/java/org/apache/hudi/common/table/string/TestHoodieActiveTimeline.java @@ -199,7 +199,6 @@ public class TestHoodieActiveTimeline extends HoodieCommonTestHarness { checkTimeline.accept(timeline.getCommitsAndCompactionTimeline(), Sets.newHashSet(HoodieTimeline.COMMIT_ACTION, HoodieTimeline.DELTA_COMMIT_ACTION, HoodieTimeline.COMPACTION_ACTION)); checkTimeline.accept(timeline.getCommitTimeline(), Collections.singleton(HoodieTimeline.COMMIT_ACTION)); - checkTimeline.accept(timeline.getDeltaCommitTimeline(), Collections.singleton(HoodieTimeline.DELTA_COMMIT_ACTION)); checkTimeline.accept(timeline.getCleanerTimeline(), Collections.singleton(HoodieTimeline.CLEAN_ACTION)); checkTimeline.accept(timeline.getRollbackTimeline(), Collections.singleton(HoodieTimeline.ROLLBACK_ACTION)); diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java b/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java index 2ac6945..fde7126 100644 --- a/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java +++ b/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java @@ -40,7 +40,6 @@ import org.apache.hudi.common.util.FSUtils; import org.apache.hudi.common.util.Option; import org.apache.hudi.common.util.collection.Pair; -import com.google.common.collect.Lists; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.Path; import org.apache.log4j.LogManager; @@ -814,7 +813,7 @@ public class TestHoodieTableFileSystemView extends HoodieCommonTestHarness { roView.getAllBaseFiles("2016/05/01/"); List<HoodieBaseFile> dataFiles = - roView.getLatestBaseFilesInRange(Lists.newArrayList(commitTime2, commitTime3)).collect(Collectors.toList()); + roView.getLatestBaseFilesInRange(Arrays.asList(commitTime2, commitTime3)).collect(Collectors.toList()); assertEquals(isLatestFileSliceOnly ? 2 : 3, dataFiles.size()); Set<String> filenames = new HashSet<>(); for (HoodieBaseFile status : dataFiles) { @@ -828,7 +827,7 @@ public class TestHoodieTableFileSystemView extends HoodieCommonTestHarness { } List<FileSlice> slices = - rtView.getLatestFileSliceInRange(Lists.newArrayList(commitTime3, commitTime4)).collect(Collectors.toList()); + rtView.getLatestFileSliceInRange(Arrays.asList(commitTime3, commitTime4)).collect(Collectors.toList()); assertEquals(3, slices.size()); for (FileSlice slice : slices) { if (slice.getFileId().equals(fileId1)) { diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestCompactionUtils.java b/hudi-common/src/test/java/org/apache/hudi/common/util/TestCompactionUtils.java index 94d8b66..2d3cf2e 100644 --- a/hudi-common/src/test/java/org/apache/hudi/common/util/TestCompactionUtils.java +++ b/hudi-common/src/test/java/org/apache/hudi/common/util/TestCompactionUtils.java @@ -159,13 +159,12 @@ public class TestCompactionUtils extends HoodieCommonTestHarness { Pair<List<Pair<String, FileSlice>>, HoodieCompactionPlan> inputAndPlan = buildCompactionPlan(); HoodieCompactionPlan plan = inputAndPlan.getRight(); List<HoodieCompactionOperation> originalOps = plan.getOperations(); - List<HoodieCompactionOperation> regeneratedOps = originalOps.stream().map(op -> { - // Convert to CompactionOperation - return CompactionUtils.buildCompactionOperation(op); - }).map(op2 -> { - // Convert back to HoodieCompactionOperation and check for equality - return CompactionUtils.buildHoodieCompactionOperation(op2); - }).collect(Collectors.toList()); + // Convert to CompactionOperation + // Convert back to HoodieCompactionOperation and check for equality + List<HoodieCompactionOperation> regeneratedOps = originalOps.stream() + .map(CompactionUtils::buildCompactionOperation) + .map(CompactionUtils::buildHoodieCompactionOperation) + .collect(Collectors.toList()); Assert.assertTrue("Transformation did get tested", originalOps.size() > 0); Assert.assertEquals("All fields set correctly in transformations", originalOps, regeneratedOps); } @@ -247,11 +246,9 @@ public class TestCompactionUtils extends HoodieCommonTestHarness { op.getDataFilePath()); } List<String> paths = slice.getLogFiles().map(l -> l.getPath().toString()).collect(Collectors.toList()); - IntStream.range(0, paths.size()).boxed().forEach(idx -> { - Assert.assertEquals("Log File Index " + idx, - version == COMPACTION_METADATA_VERSION_1 ? paths.get(idx) : new Path(paths.get(idx)).getName(), - op.getDeltaFilePaths().get(idx)); - }); + IntStream.range(0, paths.size()).boxed().forEach(idx -> Assert.assertEquals("Log File Index " + idx, + version == COMPACTION_METADATA_VERSION_1 ? paths.get(idx) : new Path(paths.get(idx)).getName(), + op.getDeltaFilePaths().get(idx))); Assert.assertEquals("Metrics set", METRICS, op.getMetrics()); } diff --git a/hudi-hive/src/main/java/org/apache/hudi/hive/SchemaDifference.java b/hudi-hive/src/main/java/org/apache/hudi/hive/SchemaDifference.java index f892962..57bab64 100644 --- a/hudi-hive/src/main/java/org/apache/hudi/hive/SchemaDifference.java +++ b/hudi-hive/src/main/java/org/apache/hudi/hive/SchemaDifference.java @@ -18,15 +18,14 @@ package org.apache.hudi.hive; -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import org.apache.parquet.schema.MessageType; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.StringJoiner; /** * Represents the schema difference between the storage schema and hive table schema. @@ -43,9 +42,9 @@ public class SchemaDifference { Map<String, String> updateColumnTypes, Map<String, String> addColumnTypes) { this.storageSchema = storageSchema; this.tableSchema = tableSchema; - this.deleteColumns = ImmutableList.copyOf(deleteColumns); - this.updateColumnTypes = ImmutableMap.copyOf(updateColumnTypes); - this.addColumnTypes = ImmutableMap.copyOf(addColumnTypes); + this.deleteColumns = Collections.unmodifiableList(deleteColumns); + this.updateColumnTypes = Collections.unmodifiableMap(updateColumnTypes); + this.addColumnTypes = Collections.unmodifiableMap(addColumnTypes); } public List<String> getDeleteColumns() { @@ -60,12 +59,6 @@ public class SchemaDifference { return addColumnTypes; } - @Override - public String toString() { - return Objects.toStringHelper(this).add("deleteColumns", deleteColumns).add("updateColumnTypes", updateColumnTypes) - .add("addColumnTypes", addColumnTypes).toString(); - } - public static Builder newBuilder(MessageType storageSchema, Map<String, String> tableSchema) { return new Builder(storageSchema, tableSchema); } @@ -74,6 +67,17 @@ public class SchemaDifference { return deleteColumns.isEmpty() && updateColumnTypes.isEmpty() && addColumnTypes.isEmpty(); } + @Override + public String toString() { + return new StringJoiner(", ", SchemaDifference.class.getSimpleName() + "[", "]") + .add("storageSchema=" + storageSchema) + .add("tableSchema=" + tableSchema) + .add("deleteColumns=" + deleteColumns) + .add("updateColumnTypes=" + updateColumnTypes) + .add("addColumnTypes=" + addColumnTypes) + .toString(); + } + public static class Builder { private final MessageType storageSchema; diff --git a/hudi-hive/src/main/java/org/apache/hudi/hive/util/SchemaUtil.java b/hudi-hive/src/main/java/org/apache/hudi/hive/util/SchemaUtil.java index 6ca9957..d21a331 100644 --- a/hudi-hive/src/main/java/org/apache/hudi/hive/util/SchemaUtil.java +++ b/hudi-hive/src/main/java/org/apache/hudi/hive/util/SchemaUtil.java @@ -18,8 +18,6 @@ package org.apache.hudi.hive.util; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hudi.common.model.HoodieLogFile; @@ -42,6 +40,8 @@ import org.apache.parquet.schema.Type; import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -67,7 +67,7 @@ public class SchemaUtil { } LOG.info("Getting schema difference for " + tableSchema + "\r\n\r\n" + newTableSchema); SchemaDifference.Builder schemaDiffBuilder = SchemaDifference.newBuilder(storageSchema, tableSchema); - Set<String> tableColumns = Sets.newHashSet(); + Set<String> tableColumns = new HashSet<>(); for (Map.Entry<String, String> field : tableSchema.entrySet()) { String fieldName = field.getKey().toLowerCase(); @@ -140,7 +140,7 @@ public class SchemaUtil { * @return : Hive Table schema read from parquet file MAP[String,String] */ public static Map<String, String> convertParquetSchemaToHiveSchema(MessageType messageType) throws IOException { - Map<String, String> schema = Maps.newLinkedHashMap(); + Map<String, String> schema = new LinkedHashMap<>(); List<Type> parquetFields = messageType.getFields(); for (Type parquetType : parquetFields) { StringBuilder result = new StringBuilder(); diff --git a/hudi-hive/src/test/java/org/apache/hudi/hive/TestHiveSyncTool.java b/hudi-hive/src/test/java/org/apache/hudi/hive/TestHiveSyncTool.java index 49692f5..7265f33 100644 --- a/hudi-hive/src/test/java/org/apache/hudi/hive/TestHiveSyncTool.java +++ b/hudi-hive/src/test/java/org/apache/hudi/hive/TestHiveSyncTool.java @@ -24,7 +24,6 @@ import org.apache.hudi.hive.HoodieHiveClient.PartitionEvent; import org.apache.hudi.hive.HoodieHiveClient.PartitionEvent.PartitionEventType; import org.apache.hudi.hive.util.SchemaUtil; -import com.google.common.collect.Lists; import org.apache.hadoop.hive.metastore.api.Partition; import org.apache.parquet.schema.MessageType; import org.apache.parquet.schema.OriginalType; @@ -345,7 +344,7 @@ public class TestHiveSyncTool { HiveSyncConfig hiveSyncConfig = HiveSyncConfig.copy(TestUtil.hiveSyncConfig); hiveSyncConfig.partitionValueExtractorClass = MultiPartKeysValueExtractor.class.getCanonicalName(); hiveSyncConfig.tableName = "multi_part_key"; - hiveSyncConfig.partitionFields = Lists.newArrayList("year", "month", "day"); + hiveSyncConfig.partitionFields = Arrays.asList("year", "month", "day"); TestUtil.getCreatedTablesSet().add(hiveSyncConfig.databaseName + "." + hiveSyncConfig.tableName); HoodieHiveClient hiveClient = new HoodieHiveClient(hiveSyncConfig, TestUtil.getHiveConf(), TestUtil.fileSystem); diff --git a/hudi-hive/src/test/java/org/apache/hudi/hive/TestUtil.java b/hudi-hive/src/test/java/org/apache/hudi/hive/TestUtil.java index 0cec024..571e949 100644 --- a/hudi-hive/src/test/java/org/apache/hudi/hive/TestUtil.java +++ b/hudi-hive/src/test/java/org/apache/hudi/hive/TestUtil.java @@ -43,9 +43,6 @@ import org.apache.hudi.common.util.FileIOUtils; import org.apache.hudi.common.util.SchemaTestUtil; import org.apache.hudi.hive.util.HiveTestService; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import org.apache.avro.Schema; import org.apache.avro.generic.IndexedRecord; import org.apache.hadoop.conf.Configuration; @@ -68,6 +65,10 @@ import java.io.File; import java.io.IOException; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -86,7 +87,7 @@ public class TestUtil { static HiveSyncConfig hiveSyncConfig; private static DateTimeFormatter dtfOut; static FileSystem fileSystem; - private static Set<String> createdTablesSet = Sets.newHashSet(); + private static Set<String> createdTablesSet = new HashSet<>(); public static void setUp() throws IOException, InterruptedException { if (dfsCluster == null) { @@ -114,7 +115,7 @@ public class TestUtil { hiveSyncConfig.basePath = "/tmp/hdfs/TestHiveSyncTool/"; hiveSyncConfig.assumeDatePartitioning = true; hiveSyncConfig.usePreApacheInputFormat = false; - hiveSyncConfig.partitionFields = Lists.newArrayList("datestr"); + hiveSyncConfig.partitionFields = Collections.singletonList("datestr"); dtfOut = DateTimeFormat.forPattern("yyyy/MM/dd"); @@ -249,7 +250,7 @@ public class TestUtil { private static List<HoodieWriteStat> createTestData(Path partPath, boolean isParquetSchemaSimple, String commitTime) throws IOException, URISyntaxException { - List<HoodieWriteStat> writeStats = Lists.newArrayList(); + List<HoodieWriteStat> writeStats = new ArrayList<>(); for (int i = 0; i < 5; i++) { // Create 5 files String fileId = UUID.randomUUID().toString(); @@ -297,7 +298,7 @@ public class TestUtil { .overBaseCommit(dataFile.getCommitTime()).withFs(fileSystem).build(); List<IndexedRecord> records = (isLogSchemaSimple ? SchemaTestUtil.generateTestRecords(0, 100) : SchemaTestUtil.generateEvolvedTestRecords(100, 100)); - Map<HeaderMetadataType, String> header = Maps.newHashMap(); + Map<HeaderMetadataType, String> header = new HashMap<>(2); header.put(HoodieLogBlock.HeaderMetadataType.INSTANT_TIME, dataFile.getCommitTime()); header.put(HoodieLogBlock.HeaderMetadataType.SCHEMA, schema.toString()); HoodieAvroDataBlock dataBlock = new HoodieAvroDataBlock(records, header); diff --git a/hudi-utilities/src/main/java/org/apache/hudi/utilities/UtilHelpers.java b/hudi-utilities/src/main/java/org/apache/hudi/utilities/UtilHelpers.java index 7812925..27a7f9e 100644 --- a/hudi-utilities/src/main/java/org/apache/hudi/utilities/UtilHelpers.java +++ b/hudi-utilities/src/main/java/org/apache/hudi/utilities/UtilHelpers.java @@ -68,11 +68,12 @@ import java.sql.SQLException; import java.sql.DriverManager; import java.sql.Driver; import java.util.Arrays; +import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Properties; -import java.util.Enumeration; /** * Bunch of helper methods. @@ -279,14 +280,14 @@ public class UtilHelpers { } } - Preconditions.checkNotNull(driver, String.format("Did not find registered driver with class %s", driverClass)); + Objects.requireNonNull(driver, String.format("Did not find registered driver with class %s", driverClass)); Properties properties = new Properties(); properties.putAll(options); - Connection connect = null; + Connection connect; String url = options.get(JDBCOptions.JDBC_URL()); connect = driver.connect(url, properties); - Preconditions.checkNotNull(connect, String.format("The driver could not open a JDBC connection. Check the URL: %s", url)); + Objects.requireNonNull(connect, String.format("The driver could not open a JDBC connection. Check the URL: %s", url)); return connect; }