This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin4_on_cloud in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/kylin4_on_cloud by this push: new 6fbc7d8 # update README.md (#1806) 6fbc7d8 is described below commit 6fbc7d8ffc435462aa4f0a31ca8fe7a950698219 Author: Tengting Xu <34978943+muk...@users.noreply.github.com> AuthorDate: Fri Jan 28 16:28:48 2022 +0800 # update README.md (#1806) * # update README.md * # minor fix --- README.md | 102 ++++++++++++++------------------------------------ images/sketch.png | Bin 0 -> 97308 bytes images/structure.png | Bin 79664 -> 166980 bytes readme/quick_start.md | 70 ++++++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+), 74 deletions(-) diff --git a/README.md b/README.md index 5a87e3e..c400a83 100644 --- a/README.md +++ b/README.md @@ -1,98 +1,52 @@ -# How to deploy a Kylin4 Cluster on EC2 +# Welcome To Kylin 4 On Cloud Deployment Solution ! -## Target +**Apache Kylin community** released Kylin 4.0 with a new architecture, which dedicated to building a high-performance and low-cost OLAP engine. The architecture of Kylin 4.0 supports the separation of storage and computing, which enables Kylin users to run Kylin 4.0 by adopting a more flexible and elastically scalable cloud deployment method. -1. Deploy Kylin4 on Ec2 with Spark Standalone mode in `10` minutes. +For the best practices of Kylin4 on the cloud, **Apache Kylin community** contribute a **tool** to deploy kylin4 clusters on **AWS** cloud easily and conveniently. + +# Introduction About This Tool + +## Features + +1. Deploy a Kylin4 cluster on Ec2 with Spark Standalone mode in `10` minutes. 2. Support to scale nodes (Kylin & Spark Worker) quickly and conveniently. 3. Improve performance for query of Kylin4 in using `Local Cache + Soft Affinity` feature (`Experimental Feature`), please check the [details](https://kylin.apache.org/blog/2021/10/21/Local-Cache-and-Soft-Affinity-Scheduling/). 4. Support to monitor status of cluster with `prometheus server` and `granfana`. ## Architecture -When cluster created, services and nodes will like below: +When cluster(s) created, services and nodes will like below: - + -- Services are created as the number order from 1 to 4. +- **Every stack module means related services will be controlled by a stack.** +- **Read-write separated cluster will be easy created as same as image of architecture above.** +- Services are created as the number order from 1 to 5. - Every machine node is presented by a white box. -- `Kylin Node` and `Spark Worker` Node can be scaled. -- Whole cluster will has only one RDS and only one the machine node which contains `Prometheus Server` and `Hive MetaStore` service. +- `Kylin Node` and `Spark Worker` Node can be easy to scale. +- Whole clusters will have only one RDS and only one machine node which contains `Prometheus Server` and `Hive MetaStore` service. + + ## Quick Start -1. Initialize aws account credential on local machine, please check [details](./readme/prerequisites.md#localaws). - -2. Download the source code: - - ```shell - git clone https://github.com/apache/kylin.git && cd kylin && git checkout kylin4_on_cloud - ``` - -3. Modify the `kylin_config.yml`. - - 1. Set the `AWS_REGION`. - - 2. Set the `IAMRole`,please check [details](./readme/prerequisites.md#IAM). - - 3. Set the `S3_URI`, please check [details](./readme/prerequisites.md#S3). - - 4. Set the `KeyName`,please check [details](./readme/prerequisites.md#keypair). - - 5. Set the `CIDR_IP`, make sure that the `CIDR_IP` match the pattern `xxx.xxx.xxx.xxx/16[|24|32]`. - - > Note: - > - > 1. this `CIDR_IP` is the specified IPv4 or IPv6 CIDR address range which an inbound rule can permit instances to receive traffic from. - > - > 2. In one word, it will let your mac which ip is in the `CIDR_IP` to access instances. - -4. Init local env. - -```shell -$ bin/init.sh -``` - -> Note: Following the information into a python virtual env and get the help messages. - -5. Execute commands to deploy a `default` cluster, please check [details](./readme/prerequisites.md#cluster). - -```shell -$ python deploy.py --type deploy -``` - -After `default` cluster is ready, you will see the message `Kylin Cluster already start successfully.` in the console. - -6. Execute commands to list nodes of cluster. - -```shell -$ python deploy.py --type list -``` - -Then you can check the `public ip` of Kylin Node. - -You can access `Kylin` web by `http://{kylin public ip}:7070/kylin`. - - - -7. Destroy the `default` cluster. - -```shell -$ python deploy.py --type destroy -``` +- Details about **`quick start`** of tool, please referer to [quick start](./readme/quick_start.md). +- Details about **`quick start for mutilple clusters`** of tool, please referer to [quick start for mutilple clusters](./readme/quick_start_for_multiple_clusters.md). + + ## Notes -1. More details about `quick start for mutilple clusters`, see document [quick start for mutilple clusters](./readme/quick_start_for_multiple_clusters.md) 1. More details about `commands` of tool, see document [commands](./readme/commands.md). 2. More details about `prerequisites` of tool, see document [prerequisites](./readme/prerequisites.md). 3. More details about `advanced configs` of tool, see document [advanced configs](./readme/advanced_configs.md). 4. More details about `monitor services` supported by tool, see document [monitor](./readme/monitor.md). -5. Current tool already open the port for some services. You can access the service by `public ip` of related EC2 instance. - 1. `SSH`: 22 - 2. `Granfana`: 3000 - 3. `Prmetheus`: 9090, 9100 - 4. `Kylin`: 7070 - 5. `Spark`: 8080. 4040. +5. Current tool already open the public port for some services. You can access the service by `public ip` of related EC2 instance. + 1. `SSH`: 22. + 2. `Granfana`: 3000. + 3. `Prmetheus`: 9090, 9100. + 4. `Kylin`: 7070. + 5. `Spark`: 8080, 4040. 6. More about cloudformation syntax, please check [aws website](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html). 7. Current Kylin version is 4.0.0. 8. Current Spark version is 3.1.1. diff --git a/images/sketch.png b/images/sketch.png new file mode 100644 index 0000000..799a8b2 Binary files /dev/null and b/images/sketch.png differ diff --git a/images/structure.png b/images/structure.png index c48b1c0..1f37358 100644 Binary files a/images/structure.png and b/images/structure.png differ diff --git a/readme/quick_start.md b/readme/quick_start.md new file mode 100644 index 0000000..7aae18c --- /dev/null +++ b/readme/quick_start.md @@ -0,0 +1,70 @@ +## Architecture In Quick Start + + + +## Quick Start + +1. Initialize aws account credential on local machine, please check [details](./prerequisites.md#localaws). + +2. Download the source code: + + ```shell + git clone https://github.com/apache/kylin.git && cd kylin && git checkout kylin4_on_cloud + ``` + +3. Modify the `kylin_config.yml`. + + 1. Set the `AWS_REGION`. + + 2. Set the `IAMRole`,please check [details](./prerequisites.md#IAM). + + 3. Set the `S3_URI`, please check [details](./prerequisites.md#S3). + + 4. Set the `KeyName`,please check [details](./prerequisites.md#keypair). + + 5. Set the `CIDR_IP`, make sure that the `CIDR_IP` match the pattern `xxx.xxx.xxx.xxx/16[|24|32]`. + + > Note: + > + > 1. this `CIDR_IP` is the specified IPv4 or IPv6 CIDR address range which an inbound rule can permit instances to receive traffic from. + > + > 2. In one word, it will let your mac which ip is in the `CIDR_IP` to access instances. + +4. Init local env. + +```shell +$ bin/init.sh +``` + +> Note: Following the information into a python virtual env and get the help messages. + +5. Execute commands to deploy a `default` cluster, please check [details](./prerequisites.md#cluster). + +```shell +$ python deploy.py --type deploy +``` + +After `default` cluster is ready, you will see the message `Kylin Cluster already start successfully.` in the console. + +6. Execute commands to list nodes of cluster. + +```shell +$ python deploy.py --type list +``` + +Then you can check the `public ip` of Kylin Node. + +You can access `Kylin` web by `http://{kylin public ip}:7070/kylin`. + + + +7. Destroy the `default` cluster. + +```shell +$ python deploy.py --type destroy +``` + + + +> Note: If you want to check about quick start for multiple clusters, please referer to [quick start for mutilple clusters](./quick_start_for_multiple_clusters.md). +