skywalker0618 opened a new issue, #19319:
URL: https://github.com/apache/hudi/issues/19319
### Bug Description
**What happened:**
Building hudi-flink-bundle with a flink-bundle-shade-hive* profile (so that
a Flink streaming job can register/update tables in the Hive Metastore
natively, without an external sync step) produces a bundle that fails at
runtime the moment HiveSyncTool actually talks to HMS. The
flink-bundle-shade-hive profiles bring hive-exec (and other related libraries)
into the bundle, but they don't account for two things: (1) hive-exec does not
embed its ANTLR runtime, and (2) hive-exec is itself an uber-jar that embeds
many transitive dependencies un-relocated, which then shadow the versions
Hudi/Flink rely on. Concretely:
1. Missing ANTLR runtime → NoClassDefFoundError. hive-exec is a shaded
uber-jar but does not embed its ANTLR dependencies (unzip -l hive-exec-*.jar |
grep org/antlr is empty). At sync time,
org.apache.hadoop.hive.ql.Driver.compile() loads
org.antlr.runtime.tree.CommonTree to parse DDL, and Hive's ParseDriver uses ST4
/ antlr4-runtime for template emission. Without those artifacts in the bundle:
java.lang.NoClassDefFoundError: org/antlr/runtime/tree/CommonTree
at org.apache.hadoop.hive.ql.Driver.compile(...)
at ... HiveQueryDDLExecutor.updateHiveSQLs(...)
2. hive-exec's embedded, un-relocated deps shadow the versions Hudi/Flink
need. hive-exec bundles old copies of Guava, protobuf, Avro, Commons Lang 2/3,
Thrift, ORC, JSON.org, Airlift compress, Parquet format internals, Jackson 1.x
(codehaus), fb303, snappy, etc., all at their original package names. Under
Flink child-first user classloading these win over the correct versions and
break Hudi. Observed failures include:
(1) Avro: hive-exec ships Avro 1.7.7 at org.apache.avro.*, which lacks
LogicalType. It shadows the Avro 1.8+ that Hudi-Flink targets →
NoClassDefFoundError: org/apache/avro/LogicalType (and related
GenericData.Conversion failures).
(2) Guava: Guava 14's com.google.common.base.Optional shadows Guava 24 →
NoSuchMethodError: Optional.toJavaUtil().
(3) protobuf: protobuf-java 2.5.0's com.google.protobuf.LazyStringArrayList
lacks the static emptyList() factory added in 3.22.0 → NoSuchMethodError from
generated code's <init>.
3. Parquet format.converter conflict → NoSuchMethodError. hive-exec embeds
parquet-format-structures classes (FileMetaData, ColumnChunk, Statistics, …)
that collide with the parquet-format-structures pulled in transitively. But
org.apache.parquet.format.converter.** is actually provided by parquet-hadoop
and is part of the API surface used alongside org.apache.parquet.hadoop.*.
Relocating the format package wholesale (converter included) while leaving
ParquetFileReader un-relocated creates a signature mismatch:
java.lang.NoSuchMethodError:
org.apache.parquet.hadoop.ParquetFileReader.readFooter(
Configuration, Path, ParquetMetadataConverter$MetadataFilter)
at ... TableSchemaResolver.readSchemaFromParquetBaseFile(...) // during
Hive sync
Net effect: with the current flink-bundle-shade-hive profiles you cannot run
Flink-native Hive sync against a real HMS: every commit cycle that reaches
DDL/schema comparison throws one of the above.
Environment:
Hudi: 0.14.x
Flink: 1.17 / 1.18
Hive: 2.3.x (hive-exec, hive-metastore, hive-common)
Bundle: hudi-flink-bundle built with a flink-bundle-shade-hive* profile
Classloading: Flink child-first (default)
**What you expected:**
<p class="ui-markdown__paragraph ui-1mdx765 ui-uu7i3w ui-8kmwxx ui-j7cesy
ui-13faqbe ui-14l7nz5 ui-zboxd6" style="--tw-space-y-reverse: 0; margin-block:
0px 16px; word-break: break-word; margin-bottom: 6px; margin-top: 6px; color:
rgb(240, 240, 240); font-family: -apple-system, "system-ui",
sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal;
orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows:
2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal;
background-color: rgb(24, 24, 24); text-decoration-thickness: initial;
text-decoration-style: initial; text-decoration-color: initial;">The<span>
</span><code class="ui-markdown__inline-code ui-rtu7ee ui-1i9v5mb ui-1hhlpkd
ui-6lrnw6 ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc ui-eb7xqv ui-37zpob
ui-1lldw8n ui-1mzt3pk" style="border-radius: 5px; background-color: color(srgb
0.941176 0.941
176 0.941176 / 0.08); color: rgb(240, 240, 240); font-family: Menlo, Monaco,
"Courier New", monospace; font-size: 0.9em; line-height: 1.4;
overflow-wrap: break-word; word-break: normal; padding: 1.5px
2px;">flink-bundle-shade-hive</code><span> </span>profiles should produce a
bundle that can perform Hive sync out of the box. That requires (a) adding the
ANTLR runtime, (b) relocating<span> </span><code
class="ui-markdown__inline-code ui-rtu7ee ui-1i9v5mb ui-1hhlpkd ui-6lrnw6
ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc ui-eb7xqv ui-37zpob ui-1lldw8n
ui-1mzt3pk" style="border-radius: 5px; background-color: color(srgb 0.941176
0.941176 0.941176 / 0.08); color: rgb(240, 240, 240); font-family: Menlo,
Monaco, "Courier New", monospace; font-size: 0.9em; line-height: 1.4;
overflow-wrap: break-word; word-break: normal; padding: 1.5px
2px;">hive-exec</code>'s embedded transitive deps so they don't shadow the
correct versions, and (c) stripping<span> </span><code class="ui
-markdown__inline-code ui-rtu7ee ui-1i9v5mb ui-1hhlpkd ui-6lrnw6 ui-115g5cq
ui-odjx36 ui-1wd3ewq ui-hayvgc ui-eb7xqv ui-37zpob ui-1lldw8n ui-1mzt3pk"
style="border-radius: 5px; background-color: color(srgb 0.941176 0.941176
0.941176 / 0.08); color: rgb(240, 240, 240); font-family: Menlo, Monaco,
"Courier New", monospace; font-size: 0.9em; line-height: 1.4;
overflow-wrap: break-word; word-break: normal; padding: 1.5px
2px;">hive-exec</code>'s stale Avro so Hudi resolves the modern Avro provided
by Flink.</p><p class="ui-markdown__paragraph ui-1mdx765 ui-uu7i3w ui-8kmwxx
ui-j7cesy ui-13faqbe ui-14l7nz5 ui-zboxd6" style="--tw-space-y-reverse: 0;
margin-block: 0px 16px; word-break: break-word; margin-bottom: 6px; margin-top:
6px; color: rgb(240, 240, 240); font-family: -apple-system,
"system-ui", sans-serif; font-size: 13px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; orphans: 2; text-align:
start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(24,
24, 24); text-decoration-thickness: initial; text-decoration-style: initial;
text-decoration-color: initial;"><span class="font-semibold"
data-streamdown="strong" style="--tw-font-weight: 600; font-weight: 600;">1.
Add to the bundle (artifactSet includes) — ANTLR runtime:</span></p><div
class="ui-scroll-area ui-1ekbvf6 ui-1logqu4 ui-1fx8caa ui-8ddqcf ui-1n2onr6
ui-6ikm8r ui-10wlt62 ui-rvj5dj ui-ypqxfk ui-tr57km ui-14beivq ui-13xjzxd
ui-178xt8z ui-13fuv20 ui-1aeic0j ui-s1s249 ui-32b0ac ui-141kqco ui-so031l
ui-1q0q8m5 ui-17fyfba ui-e0pwq ui-19ypqd9 ui-1arpupx ui-1043rbw ui-14l7nz5
ui-zboxd6" data-scroll-padding="4" data-visibility="hover"
data-direction="horizontal" style="--tw-space-y-reverse: 0; margin-block: 0px
16px; --scroll-area-scroll-padding: 4px; --scrollbar-inset: 1px;
--scrollbar-size: 6px; --scrollbar-thumb-top-offse
t: 6px; grid-template: 1fr / 1fr; border-radius: 6px; display: grid; position:
relative; border-color: color(srgb 0.941176 0.941176 0.941176 / 0.08);
border-style: solid; border-width: 1px; margin-bottom: 1em; margin-top: 1em;
overflow: hidden; color: rgb(240, 240, 240); font-family: -apple-system,
"system-ui", sans-serif; font-size: 13px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px;
text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width:
0px; white-space: normal; background-color: rgb(24, 24, 24);
text-decoration-thickness: initial; text-decoration-style: initial;
text-decoration-color: initial;"><div class="ui-scroll-area__viewport
ui-175mniq ui-2lwn1j ui-mz0i5r ui-1pjcqnp ui-1rohswg ui-6ehuon ui-fk6m8
ui-w2csxc ui-10wlt62 ui-k8sdt9 ui-1duton ui-101ixbw ui-exgr1p ui-7p5m3t
ui-y5w88m" style="grid-area: 1 / 1; border-radius: in
herit; scrollbar-width: none; max-height: 100%; min-height: 0px; overflow:
auto hidden; overscroll-behavior: contain auto; scroll-padding: 0px 4px;"><div
class="ui-scroll-area__content ui-9f619 ui-gqtt45 ui-193iq5w ui-1us19tq
ui-78zum5 ui-14atkfc ui-g7h5cd ui-1q0g3np" style="box-sizing: border-box;
display: flex; flex-direction: row; height: fit-content; max-width: 100%;
min-height: 100%; min-width: 100%; width: auto;">
Artifact | Why
-- | --
org.antlr:antlr-runtime | Driver.compile() needs
org.antlr.runtime.tree.CommonTree
org.antlr:ST4 | Hive ParseDriver template emission
org.antlr:antlr4-runtime | pulled in by hive-exec POM, used by ParseDriver
</div></div></div><p class="ui-markdown__paragraph ui-1mdx765 ui-uu7i3w
ui-8kmwxx ui-j7cesy ui-13faqbe ui-14l7nz5 ui-zboxd6"
style="--tw-space-y-reverse: 0; margin-block: 0px 16px; word-break: break-word;
margin-bottom: 6px; margin-top: 6px; color: rgb(240, 240, 240); font-family:
-apple-system, "system-ui", sans-serif; font-size: 13px; font-style:
normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight:
400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px;
text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width:
0px; white-space: normal; background-color: rgb(24, 24, 24);
text-decoration-thickness: initial; text-decoration-style: initial;
text-decoration-color: initial;"><span class="font-semibold"
data-streamdown="strong" style="--tw-font-weight: 600; font-weight: 600;">3.
Exclude from relocation</span><span> </span>(critical carve-out):</p><ul
class="ui-markdown__list ui-78zum5 ui-dt5ytf ui-pkkfsy u
i-1mdx765 ui-8kmwxx ui-j7cesy ui-1bae07f" style="--tw-space-y-reverse: 0;
margin-block: 0px 16px; gap: 6px; display: flex; flex-direction: column;
margin-bottom: 6px; margin-top: 6px; padding-left: 2em; color: rgb(240, 240,
240); font-family: -apple-system, "system-ui", sans-serif; font-size:
13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps:
normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align:
start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(24,
24, 24); text-decoration-thickness: initial; text-decoration-style: initial;
text-decoration-color: initial;"><li class="ui-markdown__list-item
ui--default-marker ui-exx8yu ui-1xpa7k ui-18d9i69 ui-1uhho1l ui-13faqbe
ui-ez2fb" data-md-list-item="" style="word-break: break-word; padding:
0px;"><code class="ui-markdown__inline-code ui-rtu7ee ui-1i9v5mb ui-1hhlpkd
ui-6lrnw6 ui-115g5cq ui
-odjx36 ui-1wd3ewq ui-hayvgc ui-eb7xqv ui-37zpob ui-1lldw8n ui-1mzt3pk"
style="border-radius: 5px; background-color: color(srgb 0.941176 0.941176
0.941176 / 0.08); color: rgb(240, 240, 240); font-family: Menlo, Monaco,
"Courier New", monospace; font-size: 0.9em; line-height: 1.4;
overflow-wrap: break-word; word-break: normal; padding: 1.5px
2px;">org.apache.parquet.format.converter.**</code><span> </span>— leave
un-relocated. It's provided by<span> </span><code
class="ui-markdown__inline-code ui-rtu7ee ui-1i9v5mb ui-1hhlpkd ui-6lrnw6
ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc ui-eb7xqv ui-37zpob ui-1lldw8n
ui-1mzt3pk" style="border-radius: 5px; background-color: color(srgb 0.941176
0.941176 0.941176 / 0.08); color: rgb(240, 240, 240); font-family: Menlo,
Monaco, "Courier New", monospace; font-size: 0.9em; line-height: 1.4;
overflow-wrap: break-word; word-break: normal; padding: 1.5px
2px;">parquet-hadoop</code>, not<span> </span><code class="ui-markdown__inli
ne-code ui-rtu7ee ui-1i9v5mb ui-1hhlpkd ui-6lrnw6 ui-115g5cq ui-odjx36
ui-1wd3ewq ui-hayvgc ui-eb7xqv ui-37zpob ui-1lldw8n ui-1mzt3pk"
style="border-radius: 5px; background-color: color(srgb 0.941176 0.941176
0.941176 / 0.08); color: rgb(240, 240, 240); font-family: Menlo, Monaco,
"Courier New", monospace; font-size: 0.9em; line-height: 1.4;
overflow-wrap: break-word; word-break: normal; padding: 1.5px
2px;">parquet-format-structures</code>, and is used together with the
un-relocated<span> </span><code class="ui-markdown__inline-code ui-rtu7ee
ui-1i9v5mb ui-1hhlpkd ui-6lrnw6 ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc
ui-eb7xqv ui-37zpob ui-1lldw8n ui-1mzt3pk" style="border-radius: 5px;
background-color: color(srgb 0.941176 0.941176 0.941176 / 0.08); color:
rgb(240, 240, 240); font-family: Menlo, Monaco, "Courier New",
monospace; font-size: 0.9em; line-height: 1.4; overflow-wrap: break-word;
word-break: normal; padding: 1.5px 2px;">org.apache.parquet.hadoop.*</cod
e><span> </span>API (<code class="ui-markdown__inline-code ui-rtu7ee
ui-1i9v5mb ui-1hhlpkd ui-6lrnw6 ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc
ui-eb7xqv ui-37zpob ui-1lldw8n ui-1mzt3pk" style="border-radius: 5px;
background-color: color(srgb 0.941176 0.941176 0.941176 / 0.08); color:
rgb(240, 240, 240); font-family: Menlo, Monaco, "Courier New",
monospace; font-size: 0.9em; line-height: 1.4; overflow-wrap: break-word;
word-break: normal; padding: 1.5px 2px;">ParquetFileReader.readFooter(...,
ParquetMetadataConverter.NO_FILTER)</code>). Relocating it breaks the method
signature.</li></ul><p class="ui-markdown__paragraph ui-1mdx765 ui-uu7i3w
ui-8kmwxx ui-j7cesy ui-13faqbe ui-14l7nz5 ui-zboxd6"
style="--tw-space-y-reverse: 0; margin-block: 0px 16px; word-break: break-word;
margin-bottom: 6px; margin-top: 6px; color: rgb(240, 240, 240); font-family:
-apple-system, "system-ui", sans-serif; font-size: 13px; font-style:
normal; font-variant-ligatures: normal; font-vari
ant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none; widows: 2;
word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal;
background-color: rgb(24, 24, 24); text-decoration-thickness: initial;
text-decoration-style: initial; text-decoration-color: initial;"><span
class="font-semibold" data-streamdown="strong" style="--tw-font-weight: 600;
font-weight: 600;">4. Filter out (strip) from the bundle:</span></p><ul
class="ui-markdown__list ui-78zum5 ui-dt5ytf ui-pkkfsy ui-1mdx765 ui-8kmwxx
ui-j7cesy ui-1bae07f" style="--tw-space-y-reverse: 0; margin-block: 0px 16px;
gap: 6px; display: flex; flex-direction: column; margin-bottom: 6px;
margin-top: 6px; padding-left: 2em; color: rgb(240, 240, 240); font-family:
-apple-system, "system-ui", sans-serif; font-size: 13px; font-style:
normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight:
400; letter-spacing: normal; orpha
ns: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2;
word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal;
background-color: rgb(24, 24, 24); text-decoration-thickness: initial;
text-decoration-style: initial; text-decoration-color: initial;"><li
class="ui-markdown__list-item ui--default-marker ui-exx8yu ui-1xpa7k ui-18d9i69
ui-1uhho1l ui-13faqbe ui-ez2fb" data-md-list-item="" style="word-break:
break-word; padding: 0px;"><code class="ui-markdown__inline-code ui-rtu7ee
ui-1i9v5mb ui-1hhlpkd ui-6lrnw6 ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc
ui-eb7xqv ui-37zpob ui-1lldw8n ui-1mzt3pk" style="border-radius: 5px;
background-color: color(srgb 0.941176 0.941176 0.941176 / 0.08); color:
rgb(240, 240, 240); font-family: Menlo, Monaco, "Courier New",
monospace; font-size: 0.9em; line-height: 1.4; overflow-wrap: break-word;
word-break: normal; padding: 1.5px 2px;">org/apache/avro/**</code><span>
</span><span class="font-semibold" data-stre
amdown="strong" style="--tw-font-weight: 600; font-weight: 600;">from
the<span> </span><code class="ui-markdown__inline-code ui-rtu7ee ui-1i9v5mb
ui-1hhlpkd ui-6lrnw6 ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc ui-eb7xqv
ui-37zpob ui-1lldw8n ui-1mzt3pk" style="border-radius: 5px; background-color:
color(srgb 0.941176 0.941176 0.941176 / 0.08); color: rgb(240, 240, 240);
font-family: Menlo, Monaco, "Courier New", monospace; font-size:
0.9em; line-height: 1.4; overflow-wrap: break-word; word-break: normal;
padding: 1.5px 2px;">org.apache.hive:hive-exec</code><span> </span>artifact
only.</span><span> </span><code class="ui-markdown__inline-code ui-rtu7ee
ui-1i9v5mb ui-1hhlpkd ui-6lrnw6 ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc
ui-eb7xqv ui-37zpob ui-1lldw8n ui-1mzt3pk" style="border-radius: 5px;
background-color: color(srgb 0.941176 0.941176 0.941176 / 0.08); color:
rgb(240, 240, 240); font-family: Menlo, Monaco, "Courier New",
monospace; font-size: 0.9em; line-hei
ght: 1.4; overflow-wrap: break-word; word-break: normal; padding: 1.5px
2px;">hive-exec</code><span> </span>ships Avro 1.7.7; stripping it leaves the
bundle contributing zero Avro classes, so Hudi resolves<span> </span><code
class="ui-markdown__inline-code ui-rtu7ee ui-1i9v5mb ui-1hhlpkd ui-6lrnw6
ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc ui-eb7xqv ui-37zpob ui-1lldw8n
ui-1mzt3pk" style="border-radius: 5px; background-color: color(srgb 0.941176
0.941176 0.941176 / 0.08); color: rgb(240, 240, 240); font-family: Menlo,
Monaco, "Courier New", monospace; font-size: 0.9em; line-height: 1.4;
overflow-wrap: break-word; word-break: normal; padding: 1.5px
2px;">org.apache.avro.*</code><span> </span>against the modern Avro supplied
by<span> </span><code class="ui-markdown__inline-code ui-rtu7ee ui-1i9v5mb
ui-1hhlpkd ui-6lrnw6 ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc ui-eb7xqv
ui-37zpob ui-1lldw8n ui-1mzt3pk" style="border-radius: 5px; background-color:
color(srgb 0.941176 0.941
176 0.941176 / 0.08); color: rgb(240, 240, 240); font-family: Menlo, Monaco,
"Courier New", monospace; font-size: 0.9em; line-height: 1.4;
overflow-wrap: break-word; word-break: normal; padding: 1.5px
2px;">flink-avro</code><span> </span>at runtime. (Note:<span> </span><code
class="ui-markdown__inline-code ui-rtu7ee ui-1i9v5mb ui-1hhlpkd ui-6lrnw6
ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc ui-eb7xqv ui-37zpob ui-1lldw8n
ui-1mzt3pk md-inline-path-filename-like" style="border-radius: 5px;
background-color: color(srgb 0.941176 0.941176 0.941176 / 0.08); color:
rgb(240, 240, 240); font-family: Menlo, Monaco, "Courier New",
monospace; font-size: 0.9em; line-height: 1.4; overflow-wrap: break-word;
word-break: normal; padding: 1.5px 2px;"><span
class="ui-markdown__inline-path-filename ui-1heor9g md-inline-path-filename"
style="color: inherit;">org.apache.avro</span></code><span> </span>is
deliberately<span> </span><span class="font-semibold" data-streamdown="strong"
style="--tw-font-weight: 600; font-weight: 600;">not</span><span>
</span>relocated — relocating would rewrite Hudi's bytecode to a namespace
populated by Hive's stale 1.7.7 classes, reintroducing the<span> </span><code
class="ui-markdown__inline-code ui-rtu7ee ui-1i9v5mb ui-1hhlpkd ui-6lrnw6
ui-115g5cq ui-odjx36 ui-1wd3ewq ui-hayvgc ui-eb7xqv ui-37zpob ui-1lldw8n
ui-1mzt3pk" style="border-radius: 5px; background-color: color(srgb 0.941176
0.941176 0.941176 / 0.08); color: rgb(240, 240, 240); font-family: Menlo,
Monaco, "Courier New", monospace; font-size: 0.9em; line-height: 1.4;
overflow-wrap: break-word; word-break: normal; padding: 1.5px
2px;">LogicalType</code><span> </span>failure.)</li></ul><p
class="ui-markdown__paragraph ui-1mdx765 ui-uu7i3w ui-8kmwxx ui-j7cesy
ui-13faqbe ui-14l7nz5 ui-zboxd6" style="--tw-space-y-reverse: 0; margin-block:
0px 16px; word-break: break-word; margin-bottom: 6px; margin-top: 6px; color:
rgb(240, 240, 240); font-family: -apple-syste
m, "system-ui", sans-serif; font-size: 13px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px;
text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width:
0px; white-space: normal; background-color: rgb(24, 24, 24);
text-decoration-thickness: initial; text-decoration-style: initial;
text-decoration-color: initial;">With these changes, a Flink job can register
and evolve Hive tables directly from the bundle, with no external sync
process.</p>
**Steps to reproduce:**
Use hudi-flink-bundle in a flink job and turn on HMS registration
### Environment
Hudi: 0.14.x
Flink: 1.17 / 1.18
Hive: 2.3.x (hive-exec, hive-metastore, hive-common)
Bundle: hudi-flink-bundle built with a flink-bundle-shade-hive* profile
Classloading: Flink child-first (default)
### Logs and Stack Trace
_No response_
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]