[
https://issues.apache.org/jira/browse/HIVE-29666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Illia Barbashov reassigned HIVE-29666:
--------------------------------------
Assignee: Illia Barbashov
> 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
> Assignee: Illia Barbashov
> 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)