[ 
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)

Reply via email to