[HUDI-3654] Preparations for hudi metastore. (#5572)
* [HUDI-3654] Preparations for hudi metastore. Co-authored-by: gengxiaoyu <gengxiaoyu@bytedance.com>
This commit is contained in:
@@ -135,7 +135,8 @@ public abstract class BaseHoodieClient implements Serializable, AutoCloseable {
|
||||
return HoodieTableMetaClient.builder().setConf(hadoopConf).setBasePath(config.getBasePath())
|
||||
.setLoadActiveTimelineOnLoad(loadActiveTimelineOnLoad).setConsistencyGuardConfig(config.getConsistencyGuardConfig())
|
||||
.setLayoutVersion(Option.of(new TimelineLayoutVersion(config.getTimelineLayoutVersion())))
|
||||
.setFileSystemRetryConfig(config.getFileSystemRetryConfig()).build();
|
||||
.setFileSystemRetryConfig(config.getFileSystemRetryConfig())
|
||||
.setProperties(config.getProps()).build();
|
||||
}
|
||||
|
||||
public Option<EmbeddedTimelineService> getTimelineServer() {
|
||||
|
||||
@@ -459,6 +459,9 @@ public class HoodieTimelineArchiver<T extends HoodieAvroPayload, I, K, O> {
|
||||
|
||||
private Stream<HoodieInstant> getInstantsToArchive() {
|
||||
Stream<HoodieInstant> instants = Stream.concat(getCleanInstantsToArchive(), getCommitInstantsToArchive());
|
||||
if (config.isMetastoreEnabled()) {
|
||||
return Stream.empty();
|
||||
}
|
||||
|
||||
// For archiving and cleaning instants, we need to include intermediate state files if they exist
|
||||
HoodieActiveTimeline rawActiveTimeline = new HoodieActiveTimeline(metaClient, false);
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.apache.hudi.common.config.ConfigProperty;
|
||||
import org.apache.hudi.common.config.HoodieCommonConfig;
|
||||
import org.apache.hudi.common.config.HoodieConfig;
|
||||
import org.apache.hudi.common.config.HoodieMetadataConfig;
|
||||
import org.apache.hudi.common.config.HoodieMetastoreConfig;
|
||||
import org.apache.hudi.common.config.TypedProperties;
|
||||
import org.apache.hudi.common.engine.EngineType;
|
||||
import org.apache.hudi.common.fs.ConsistencyGuardConfig;
|
||||
@@ -495,6 +496,7 @@ public class HoodieWriteConfig extends HoodieConfig {
|
||||
private FileSystemViewStorageConfig viewStorageConfig;
|
||||
private HoodiePayloadConfig hoodiePayloadConfig;
|
||||
private HoodieMetadataConfig metadataConfig;
|
||||
private HoodieMetastoreConfig metastoreConfig;
|
||||
private HoodieCommonConfig commonConfig;
|
||||
private EngineType engineType;
|
||||
|
||||
@@ -886,6 +888,7 @@ public class HoodieWriteConfig extends HoodieConfig {
|
||||
this.viewStorageConfig = clientSpecifiedViewStorageConfig;
|
||||
this.hoodiePayloadConfig = HoodiePayloadConfig.newBuilder().fromProperties(newProps).build();
|
||||
this.metadataConfig = HoodieMetadataConfig.newBuilder().fromProperties(props).build();
|
||||
this.metastoreConfig = HoodieMetastoreConfig.newBuilder().fromProperties(props).build();
|
||||
this.commonConfig = HoodieCommonConfig.newBuilder().fromProperties(props).build();
|
||||
}
|
||||
|
||||
@@ -2100,6 +2103,13 @@ public class HoodieWriteConfig extends HoodieConfig {
|
||||
return HoodieStorageLayout.LayoutType.valueOf(getString(HoodieLayoutConfig.LAYOUT_TYPE));
|
||||
}
|
||||
|
||||
/**
|
||||
* Metastore configs.
|
||||
*/
|
||||
public boolean isMetastoreEnabled() {
|
||||
return metastoreConfig.enableMetastore();
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
|
||||
protected final HoodieWriteConfig writeConfig = new HoodieWriteConfig();
|
||||
|
||||
@@ -63,7 +63,8 @@ public abstract class HoodieSparkTable<T extends HoodieRecordPayload>
|
||||
HoodieTableMetaClient.builder().setConf(context.getHadoopConf().get()).setBasePath(config.getBasePath())
|
||||
.setLoadActiveTimelineOnLoad(true).setConsistencyGuardConfig(config.getConsistencyGuardConfig())
|
||||
.setLayoutVersion(Option.of(new TimelineLayoutVersion(config.getTimelineLayoutVersion())))
|
||||
.setFileSystemRetryConfig(config.getFileSystemRetryConfig()).build();
|
||||
.setFileSystemRetryConfig(config.getFileSystemRetryConfig())
|
||||
.setProperties(config.getProps()).build();
|
||||
return HoodieSparkTable.create(config, (HoodieSparkEngineContext) context, metaClient, refreshTimeline);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user