diff --git a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SavepointsCommand.java b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SavepointsCommand.java index 0b6d9e1a8..363e0a3b4 100644 --- a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SavepointsCommand.java +++ b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SavepointsCommand.java @@ -84,8 +84,8 @@ public class SavepointsCommand implements CommandMarker { @CliCommand(value = "savepoint create", help = "Savepoint a commit") public String savepoint(@CliOption(key = {"commit"}, help = "Commit to savepoint") final String commitTime, - @CliOption(key = {"user"}, help = "User who is creating the savepoint") final String user, - @CliOption(key = {"comments"}, help = "Comments for creating the savepoint") final String comments) + @CliOption(key = {"user"}, unspecifiedDefaultValue = "default", help = "User who is creating the savepoint") final String user, + @CliOption(key = {"comments"}, unspecifiedDefaultValue = "default", help = "Comments for creating the savepoint") final String comments) throws Exception { HoodieActiveTimeline activeTimeline = HoodieCLI.tableMetadata.getActiveTimeline(); HoodieTimeline timeline = activeTimeline.getCommitTimeline().filterCompletedInstants(); @@ -95,13 +95,18 @@ public class SavepointsCommand implements CommandMarker { return "Commit " + commitTime + " not found in Commits " + timeline; } - HoodieWriteClient client = createHoodieClient(null, HoodieCLI.tableMetadata.getBasePath()); + JavaSparkContext jsc = SparkUtil.initJavaSparkConf("Create Savepoint"); + HoodieWriteClient client = createHoodieClient(jsc, HoodieCLI.tableMetadata.getBasePath()); + String result; if (client.savepoint(commitTime, user, comments)) { // Refresh the current refreshMetaClient(); - return String.format("The commit \"%s\" has been savepointed.", commitTime); + result = String.format("The commit \"%s\" has been savepointed.", commitTime); + } else { + result = String.format("Failed: Could not savepoint commit \"%s\".", commitTime); } - return String.format("Failed: Could not savepoint commit \"%s\".", commitTime); + jsc.close(); + return result; } @CliCommand(value = "savepoint rollback", help = "Savepoint a commit") 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 1625c67a8..3a21e5639 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 @@ -61,10 +61,14 @@ public class SparkUtil { public static JavaSparkContext initJavaSparkConf(String name) { SparkConf sparkConf = new SparkConf().setAppName(name); - String defMasterFromEnv = sparkConf.get("spark.master"); + + String defMasterFromEnv = sparkConf.getenv("SPARK_MASTER"); if ((null == defMasterFromEnv) || (defMasterFromEnv.isEmpty())) { sparkConf.setMaster(DEFUALT_SPARK_MASTER); + } else { + sparkConf.setMaster(defMasterFromEnv); } + sparkConf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); sparkConf.set("spark.driver.maxResultSize", "2g"); sparkConf.set("spark.eventLog.overwrite", "true");