Skip to content

HIVE-29756: Beeline native installer added, native images compatibili… - #6652

Open
illiabarbashov-sketch wants to merge 18 commits into
apache:masterfrom
illiabarbashov-sketch:HIVE-29666_beeline_native
Open

HIVE-29756: Beeline native installer added, native images compatibili…#6652
illiabarbashov-sketch wants to merge 18 commits into
apache:masterfrom
illiabarbashov-sketch:HIVE-29666_beeline_native

Conversation

@illiabarbashov-sketch

@illiabarbashov-sketch illiabarbashov-sketch commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

…ty tests added

What changes were proposed in this pull request?

  1. jpackage maven plugin was added to allow for a beeline native image to be built.
  2. Github action to manually trigger the native image build was added

Why are the changes needed?

  1. To allow beeline to be distributed as a native application for Mac, Windows and Linux

Does this PR introduce any user-facing change?

  1. No

How was this patch tested?

  1. Unit tests

bash --version

- name: Build Beeline installer
run: mvn package -pl beeline -am -DskipTests -P native-installer

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we reuse the existing -Pdist profile here?

@illiabarbashov-sketch illiabarbashov-sketch Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think we would need this? I mean, if we just rename native-isntaller to dist profile for beeline, wouldn't it triggered the jpackage native app on every nightly build? I thought it was something to avoid. Current hive building command, to what I know, is mvn install -Dtest=noMatches -Pdist -pl packaging -am Beeline currently doesn't have dist profile so it's just get built with the install command. If we change native-installer profile to dist the earlier hive build command will propagate the dist profile to beeline and jpackage will get activated. And we should be sure that Jenkins agent is able to run that. Also this will extend the time for nightly build.

Comment thread beeline/pom.xml Outdated
mvn package -pl beeline -am -DskipTests -P native-installer

Output (arch sub-directory so x64 and arm64 artifacts coexist):
beeline/target/installer/x64/beeline-4.3.0.dmg (Intel Mac)

@deniskuzZ deniskuzZ Aug 7, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe /target/apache-hive-beeline-X.Y.Z/x64/beeline-4.3.0.dmg ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

krb5CacheFilePath = cacheDir.resolve("krb5cc_beeline_test");

String userPrincipal = miniHiveKdc.getFullyQualifiedUserPrincipal(MiniHiveKdc.HIVE_TEST_USER_1);
BeelineResult kinitResult = runCommand(List.of("kinit", "-kt",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are we using kerberized setup here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes we're. We are using the keytab from MiniHiveKDC with the default config. However, this test will not be run on itself in our current Pipeline. It should be included into it if we want of course. I mean before running this test we would have to install the native app and run this test against that app. (Relatively easy on Linux, but a few extra steps anyway).

return env;
}

private static final class BeelineResult {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could be refactored with record

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@sonarqubecloud

sonarqubecloud Bot commented Aug 7, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants