[tools]Import Wizard for Installation Setup#599
[tools]Import Wizard for Installation Setup#599JinkunLiu wants to merge 13 commits intoapache:mainfrom
Conversation
4345b93 to
47ba91e
Compare
wenjin272
left a comment
There was a problem hiding this comment.
Thanks for your work @JinkunLiu. I tried using this script and found some issues, which I've listed in the comments.
From a user experience perspective, I feel there is a significant issue: users are required to understand too many cli flag and environment variables, such as --install-flink, --enable-pyflink, INSTALL_FLINK, FLINK_VERSION, and FLINK_AGENTS_VERSION. Even the value of INSTALL_FLINK can be set to ask.
I'm wondering if we could retain only a single CLI flag, --default, to indicate that all operations should follow the default path, while using an interactive mode for user selection in all other cases. Users can interactively choose whether to install Flink, select the Flink version (1.20.3, 2.0.1, 2.1.1, 2.2.0), and specify the flink-agents version (0.1.1, 0.2.1, 0.3). Additionally, users can provide interactive responses regarding the location of an existing Flink installation and the target installation directory.
We can retain these environment variables; when they are detected as set, we will print a log and skip the prompt.
|
Hello @wenjin272 thanks for you review
CLI flags are reserved for non-interactive installation mode
Actually, the code already does this — you can try running
Now the install shell provides the latest version as default. Users can use all the features we provide in the latest version.If they need special version about Flink or Flink-agents they can use cli flag. |
|
Hi, @JinkunLiu, thanks for your update. Since flink-agents provides multi-version support, and considering that some developers' clusters may not yet be compatible with the latest Flink version, I believe it might be too inflexible to always download the latest Flink version.
This is what I mean when I say that users need to understand many CLI flags. Why can't users be allowed to select a specific Flink version, rather than being required to specify it via a CLI flag? We provide a GUI-like installation wizard, but users are still required to manually specify certain cli flag to achieve specific goals. I believe this creates a fragmented user experience. I think for some less frequent requirements, such as dry-run and verbose, we can simply only provide CLI flags. However, for some high-frequency requirements, I believe it would be a more user-friendly experience to allow users to select options during the installation guide, rather than requiring them to read and understand the information returned by help and setting CLI flags or environment variables. I think these requirements contains:
After the user makes the above selections, we will then output the Install Plan. Additionally, when running the script on my Mac, I encountered the error die: command not found. You may need to replace it with a more universally available command. |
wenjin272
left a comment
There was a problem hiding this comment.
Hi, @JinkunLiu. I have verified the install.sh script locally and successfully submitted the example to the Flink standalone cluster. LGTM. Please take a look at your convenience @xintongsong.
The only issue I encountered was being unable to complete the download of Flink within the timeout period. I'm not sure whether this is a personal network problem or a common occurrence.
Additionally, now that an install script has been provided, we need to refactor the Installation section in the documentation. I think this can be done either in this PR or in a separate one.
| detect_downloader | ||
| fi | ||
| if [[ "$DOWNLOADER" == "curl" ]]; then | ||
| curl -fsSL --proto '=https' --tlsv1.2 --connect-timeout 5 --max-time 30 --retry 2 --retry-delay 1 --retry-connrefused -o "$output" "$url" |
There was a problem hiding this comment.
The flink-2.2.0-bin-scala_2.12.tgz file is 544 MB in size, and setting the max-time to 30 seconds imposes high demands on network performance.
Based on my actual tests, it takes approximately 500 seconds in my office network. I recommend setting it to 600 seconds.
There was a problem hiding this comment.
Good catch. This is a mistake which introduced when i fix another issue. Fixed it.
a2ab0bd to
852c603
Compare
Linked issue: #586
Purpose of change
Import Wizard for Installation Setup
Install Flink & Install PyFlink Environment
Tests
I have test shell on Ubuntu 22.0 and macOS 15.0
API
not
Documentation
doc-neededdoc-not-neededdoc-included