[
https://issues.apache.org/jira/browse/HIVE-29666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Attila Turoczy updated HIVE-29666:
----------------------------------
Description:
Provide Beeline as an easy-to-install standalone package for Windows, macOS,
and Linux, without requiring users to install or configure a separate Java
runtime.
Beeline is currently distributed as part of the full Hive binary package and
requires a compatible Java runtime to be installed on the users machine. This
creates significant setup complexity for users who only want to use Beeline as
a lightweight SQL command-line client. The current experience is particularly
problematic for users who are not developers and may not be familiar with Java
installation, environment variables, dependency management, or the full Hive
distribution. Trying Beeline should be as simple as downloading or installing a
platform-specific package and running the command.
h2. Goal
Investigate and implement a standalone Beeline distribution that:
* Is available independently from the full Hive binary package.
* Does not require a separately installed JRE.
* Is simple to install and run for non-developer users.
* Supports the main desktop platforms:
** Windows
** macOS on Apple Silicon
** Linux
* Keeps the final package as small as reasonably possible.
h2. Proposed Direction
One possible approach is to use {{jpackage}} to create a self-contained,
platform-specific Beeline application that includes the required Java runtime.
The investigation should determine whether {{{}jpackage{}}}, or another
suitable packaging mechanism, can be used to:
* Bundle Beeline with a minimal Java runtime.
* Produce native installers or standalone archives.
* Create separate artifacts for Windows, macOS, and Linux.
* Integrate the packaging process into the existing Hive build and release
workflow.
The final implementation should not be limited to {{jpackage}} if another
approach provides a better user experience or produces smaller and
easier-to-maintain artifacts.
h2. Expected User Experience
A user should be able to:
# Download or install the Beeline package for their operating system.
# Run the {{beeline}} command without installing Java or the full Hive
distribution.
# Connect to a supported HiveServer2 endpoint using the existing Beeline
command-line parameters.
h2. Key Design Considerations
h3. Platform-Specific Builds
Native packaging may require builds to be executed on the target operating
system.
The build and release process may therefore require:
* A Windows build environment.
* A macOS build environment, including Apple Silicon support.
* A Linux build environment.
* Platform-specific signing or notarization, where required.
* Changes to the current CI and release infrastructure.
Cross-compilation support and limitations should be evaluated.
h3. Package Size
The resulting package may become large because Beeline currently depends
directly or transitively on components such as:
* {{hive-exec}}
* Hadoop libraries
* HDFS libraries
* JDBC drivers
* Logging frameworks
* Authentication and security libraries
The dependency tree should be reviewed to determine:
* Which dependencies are actually required by Beeline.
* Whether unnecessary Hive server-side dependencies can be removed.
* Whether a dedicated lightweight Beeline module should be introduced.
* Whether {{jlink}} can be used to create a reduced Java runtime.
* Whether optional integrations can be distributed separately.
h3. Compatibility
The standalone package should preserve existing Beeline functionality,
including:
* JDBC URL-based connections.
* Kerberos authentication.
* SSL/TLS configuration.
* HTTP and binary transport modes.
* Authentication mechanisms currently supported by Beeline.
* Script execution and command-line options.
* Existing configuration-file behavior where applicable.
h3. Distribution Format
The investigation should evaluate appropriate formats for each platform, such
as:
* Windows installer or ZIP archive.
* macOS package, application bundle, or archive.
* Linux archive and potentially native package formats such as RPM or DEB.
The initial implementation may use standalone archives if native installers
introduce excessive complexity.
was:
Beeline is currently distributed as part of the Hive binary/package and
requires a Java runtime environment on the user machine. This creates
additional setup complexity for users who only want to use Beeline as a
lightweight SQL CLI client.
We should investigate whether it is possible to provide Beeline as a standalone
executable or installable package that does not require a separately installed
JRE on the user machine. I read and article about jpackage. Maybe with that it
would have a possibility to have a separate one.
Possible problems maybe the build system for windows and mac. That maybe need a
separate machine. Also the size of the package maybe big as there are
dependencies for hive-exec,hadoop-hdfs etc,
> Beeline as Standalone executable
> --------------------------------
>
> Key: HIVE-29666
> URL: https://issues.apache.org/jira/browse/HIVE-29666
> Project: Hive
> Issue Type: New Feature
> Reporter: Attila Turoczy
> Priority: Major
> Labels: Cloud
>
> Provide Beeline as an easy-to-install standalone package for Windows, macOS,
> and Linux, without requiring users to install or configure a separate Java
> runtime.
> Beeline is currently distributed as part of the full Hive binary package and
> requires a compatible Java runtime to be installed on the users machine. This
> creates significant setup complexity for users who only want to use Beeline
> as a lightweight SQL command-line client. The current experience is
> particularly problematic for users who are not developers and may not be
> familiar with Java installation, environment variables, dependency
> management, or the full Hive distribution. Trying Beeline should be as simple
> as downloading or installing a platform-specific package and running the
> command.
> h2. Goal
> Investigate and implement a standalone Beeline distribution that:
> * Is available independently from the full Hive binary package.
> * Does not require a separately installed JRE.
> * Is simple to install and run for non-developer users.
> * Supports the main desktop platforms:
> ** Windows
> ** macOS on Apple Silicon
> ** Linux
> * Keeps the final package as small as reasonably possible.
> h2. Proposed Direction
> One possible approach is to use {{jpackage}} to create a self-contained,
> platform-specific Beeline application that includes the required Java runtime.
> The investigation should determine whether {{{}jpackage{}}}, or another
> suitable packaging mechanism, can be used to:
> * Bundle Beeline with a minimal Java runtime.
> * Produce native installers or standalone archives.
> * Create separate artifacts for Windows, macOS, and Linux.
> * Integrate the packaging process into the existing Hive build and release
> workflow.
> The final implementation should not be limited to {{jpackage}} if another
> approach provides a better user experience or produces smaller and
> easier-to-maintain artifacts.
> h2. Expected User Experience
> A user should be able to:
> # Download or install the Beeline package for their operating system.
> # Run the {{beeline}} command without installing Java or the full Hive
> distribution.
> # Connect to a supported HiveServer2 endpoint using the existing Beeline
> command-line parameters.
> h2. Key Design Considerations
> h3. Platform-Specific Builds
> Native packaging may require builds to be executed on the target operating
> system.
> The build and release process may therefore require:
> * A Windows build environment.
> * A macOS build environment, including Apple Silicon support.
> * A Linux build environment.
> * Platform-specific signing or notarization, where required.
> * Changes to the current CI and release infrastructure.
> Cross-compilation support and limitations should be evaluated.
> h3. Package Size
> The resulting package may become large because Beeline currently depends
> directly or transitively on components such as:
> * {{hive-exec}}
> * Hadoop libraries
> * HDFS libraries
> * JDBC drivers
> * Logging frameworks
> * Authentication and security libraries
> The dependency tree should be reviewed to determine:
> * Which dependencies are actually required by Beeline.
> * Whether unnecessary Hive server-side dependencies can be removed.
> * Whether a dedicated lightweight Beeline module should be introduced.
> * Whether {{jlink}} can be used to create a reduced Java runtime.
> * Whether optional integrations can be distributed separately.
> h3. Compatibility
> The standalone package should preserve existing Beeline functionality,
> including:
> * JDBC URL-based connections.
> * Kerberos authentication.
> * SSL/TLS configuration.
> * HTTP and binary transport modes.
> * Authentication mechanisms currently supported by Beeline.
> * Script execution and command-line options.
> * Existing configuration-file behavior where applicable.
> h3. Distribution Format
> The investigation should evaluate appropriate formats for each platform, such
> as:
> * Windows installer or ZIP archive.
> * macOS package, application bundle, or archive.
> * Linux archive and potentially native package formats such as RPM or DEB.
> The initial implementation may use standalone archives if native installers
> introduce excessive complexity.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)