From d3465507a8bcadadae83c6f17aea3a2d33cdc12a Mon Sep 17 00:00:00 2001 From: howeye <360782885@qq.com> Date: Mon, 23 Dec 2019 17:15:24 +0800 Subject: [PATCH] Update docs --- README.md | 7 ++++++- docs/en_US/ch1/QuickDeploy.md | 19 +++++++++--------- docs/zh_CN/ch1/README.md | 8 ++++++-- ...07\347\272\247\346\214\207\345\215\227.md" | 17 ++++++++++++---- ...55\345\273\272\346\211\213\345\206\214.md" | 19 +++++++++--------- ...\205\245Linkis\346\226\207\346\241\243.md" | 2 +- ...AbnormalDataSavedDatabaseConfiguration.png | Bin 0 -> 4363 bytes images/en_US/ch1/ClusterConfigurationDemo.png | Bin 12847 -> 8780 bytes ...6\345\272\223\351\205\215\347\275\256.png" | Bin 0 -> 4605 bytes ...5\347\275\256\346\240\267\344\276\213.png" | Bin 12475 -> 8614 bytes 10 files changed, 46 insertions(+), 26 deletions(-) create mode 100644 images/en_US/ch1/AbnormalDataSavedDatabaseConfiguration.png create mode 100644 "images/zh_CN/ch1/\345\274\202\345\270\270\346\225\260\346\215\256\346\225\260\346\215\256\345\272\223\351\205\215\347\275\256.png" diff --git a/README.md b/README.md index 0d12beb3..e73f235c 100644 --- a/README.md +++ b/README.md @@ -72,4 +72,9 @@ If you desire immediate response, please kindly raise issues to us or scan the b ![](images/en_US/ch1/ContractUs.png) ## License -**Linkis is under the Apache 2.0 license. See the [LICENSE](/LICENSE) file for details.** \ No newline at end of file +**Linkis is under the Apache 2.0 license. See the [LICENSE](/LICENSE) file for details.** + +## Tips +Because the front-end code of Qualitis is FES, a front-end framework developed by WeBank, but the FES framework is not currently open source, so the front-end code of Qualitis is not open source for the time being. We will promote Qualitis's front-end open source as soon as possible. We are very sorry about this. + +You can download the source code and unzip web/app/src/main/resources/static/static.zip to get the compiled front-end code, or use it directly by downloading the release. \ No newline at end of file diff --git a/docs/en_US/ch1/QuickDeploy.md b/docs/en_US/ch1/QuickDeploy.md index 54c013b7..d94eaebe 100644 --- a/docs/en_US/ch1/QuickDeploy.md +++ b/docs/en_US/ch1/QuickDeploy.md @@ -8,7 +8,7 @@ Hadoop (2.7.2) Hive (1.2.1) Zookeeper (3.4.9) Linkis (0.9.1), Spark engine required.[How to install Linkis?](https://github.com/WeBankFinTech/Linkis) -DataSphereStudio (0.6.0) Optional. If you want to use workflow, it it required. [How to install DataSphereStudio?](https://github.com/WeBankFinTech/DataSphereStudio) +DataSphereStudio (0.6.0) Optional. If you want to use workflow, it it required. [How to install DataSphereStudio?](https://github.com/WeBankFinTech/DataSphereStudio) ## 2. Download [Download](https://github.com/WeBankFinTech/Qualitis/releases) @@ -54,10 +54,6 @@ task.persistence.address= ## zookeeper address zk.address= - -## HiveServer2 username and password -hive.username= -hive.password= ``` ### 4.4 Start Service @@ -79,9 +75,7 @@ Click on "Configuration" -> "Cluster Configuration" to add cluster. ![系统配置](../../../images/en_US/ch1/NewCluster.png) Type in the configuration information below: Cluster name(The name of Hadoop cluster) -Cluster type -HiveMetaStore address -HiveServer2 address +Cluster type Linkis address Linkis Token(How to get Linkis Token:[Linkis Access Guide](Linkis Access Guide.md)) @@ -90,7 +84,14 @@ Here is an example: --- -Tips: +Tips: + +Qualitis will save the abnormal data in the database. The saved database name can be configured in the system settings, as shown in the following figure: +![](../../../images/en_US/ch1/AbnormalDataSavedDatabaseConfiguration.png) +As shown in the figure, Qualitis provides $ {USERNAME} as an expression for user name replacement. The abnormal data ran by different users are stored in their respective databases. + +--- + Workflow is default supported. You need to install [DataSphereStudio](https://github.com/WeBankFinTech/DataSphereStudio) to use workflow. Enabling workflow does not affect the normal use of Qualitis. diff --git a/docs/zh_CN/ch1/README.md b/docs/zh_CN/ch1/README.md index 392a2a89..e9af5048 100644 --- a/docs/zh_CN/ch1/README.md +++ b/docs/zh_CN/ch1/README.md @@ -42,7 +42,6 @@ Qualitis基于Spring Boot,依赖于Linkis进行数据计算,提供数据质 [用户手册](用户手册.md) [架构设计文档](架构设计文档.md)
-**更多文档,请[点我访问](https://github.com/WeBankFinTech/Qualitis/wiki)** ## Architecture ![](../../../images/zh_CN/ch1/总体架构设计.png) @@ -74,4 +73,9 @@ Qualitis基于Spring Boot,依赖于Linkis进行数据计算,提供数据质 ![](../../../images/en_US/ch1/ContractUs.png) ## License -**Linkis is under the Apache 2.0 license. See the [LICENSE](/LICENSE) file for details.** \ No newline at end of file +**Linkis is under the Apache 2.0 license. See the [LICENSE](/LICENSE) file for details.** + +## Tips +由于Qualitis的前端代码是采用WeBank自研的前端框架FES,但是FES框架目前没有开源,所以Qualitis的前端代码暂不开源。我们会尽快推进Qualitis的前端开源。对此我们感到非常抱歉。 + +你可以通过源码下载,并解压web/app/src/main/resources/static/static.zip来获取编译后的前端代码,或者通过下载release直接使用。 \ No newline at end of file diff --git "a/docs/zh_CN/ch1/\345\215\207\347\272\247\346\214\207\345\215\227.md" "b/docs/zh_CN/ch1/\345\215\207\347\272\247\346\214\207\345\215\227.md" index 7c1b8b4d..d0b31997 100644 --- "a/docs/zh_CN/ch1/\345\215\207\347\272\247\346\214\207\345\215\227.md" +++ "b/docs/zh_CN/ch1/\345\215\207\347\272\247\346\214\207\345\215\227.md" @@ -4,7 +4,16 @@ 下载0.6.0版本代码,并解压。 执行以下数据库脚本: - ``` - mysql -u {USERNAME} -p {PASSWORD} -h {IP} --default-character-set=utf8 - source conf/database/update/update_0.5.0-0.6.0.sql - ``` \ No newline at end of file +``` +mysql -u {USERNAME} -p {PASSWORD} -h {IP} --default-character-set=utf8 +source conf/database/update/update_0.5.0-0.6.0.sql +``` + +## 0.6.0 升级 0.7.0 +下载0.6.0版本代码,并解压。 + +执行以下数据库脚本: +``` +mysql -u {USERNAME} -p {PASSWORD} -h {IP} --default-character-set=utf8 +source conf/database/update/update_0.6.0-0.7.0.sql +``` \ No newline at end of file diff --git "a/docs/zh_CN/ch1/\345\277\253\351\200\237\346\220\255\345\273\272\346\211\213\345\206\214.md" "b/docs/zh_CN/ch1/\345\277\253\351\200\237\346\220\255\345\273\272\346\211\213\345\206\214.md" index c4c11243..37a7c70b 100644 --- "a/docs/zh_CN/ch1/\345\277\253\351\200\237\346\220\255\345\273\272\346\211\213\345\206\214.md" +++ "b/docs/zh_CN/ch1/\345\277\253\351\200\237\346\220\255\345\273\272\346\211\213\345\206\214.md" @@ -8,7 +8,7 @@ Hadoop (2.7.2) Hive (1.2.1) Zookeeper (3.4.9) Linkis(0.9.1), 必装Spark引擎。[如何安装Linkis](https://github.com/WeBankFinTech/Linkis) -DataSphereStudio (0.6.0) 可选. 如果你想使用工作流,必装DataSphereStudio [如何安装DataSphereStudio?](https://github.com/WeBankFinTech/DataSphereStudio) +DataSphereStudio (0.6.0) 可选. 如果你想使用工作流,必装DataSphereStudio [如何安装DataSphereStudio?](https://github.com/WeBankFinTech/DataSphereStudio) ## 二、安装包下载 [下载](https://github.com/WeBankFinTech/Qualitis/releases) @@ -54,10 +54,6 @@ task.persistence.address= ## Zookeeper地址 zk.address= - -## HiveServer2 连接用户名密码 -hive.username= -hive.password= ``` ### 4.4 启动系统 @@ -79,9 +75,7 @@ sh bin/start.sh ![系统配置](../../../images/zh_CN/ch1/系统配置.png) 填入以下配置信息: 集群名称(Hadoop集群名称) -集群类型 -HiveMetaStore地址 -HiveServer2地址 +集群类型 Linkis地址 Linkis Token(Linkis Token配置方式请查看文档:[接入Linkis文档](接入Linkis文档.md)) @@ -90,7 +84,14 @@ Linkis Token(Linkis Token配置方式请查看文档:[接入Linkis文档](接 --- -Tips: +Tips: + +Qualitis会将异常数据保存在数据库当中,保存的数据库名称可以在系统设置中配置,如下图所示: +![](../../../images/zh_CN/ch1/异常数据数据库配置.png) +如图所示,Qualitis提供${USERNAME}来作为用户名替换的表达式,不同的用户跑出来的异常数据,保存在各自的数据库中。 + +--- + 工作流已默认开启,工作流需要安装[DataSphereStudio](https://github.com/WeBankFinTech/DataSphereStudio)。 开启工作流不影响Qualitis正常使用。 如需关闭,可修改配置文件 diff --git "a/docs/zh_CN/ch1/\346\216\245\345\205\245Linkis\346\226\207\346\241\243.md" "b/docs/zh_CN/ch1/\346\216\245\345\205\245Linkis\346\226\207\346\241\243.md" index 69582479..ec58f865 100644 --- "a/docs/zh_CN/ch1/\346\216\245\345\205\245Linkis\346\226\207\346\241\243.md" +++ "b/docs/zh_CN/ch1/\346\216\245\345\205\245Linkis\346\226\207\346\241\243.md" @@ -19,7 +19,7 @@ QUALITIS-AUTH=* ### 加入MySQL依赖包 ``` -cd $LINKIS_HOME/linkis-ujes-spark-enginemanager/lib +cd $SPARK_HOME/jars ``` 并加入mysql依赖包 diff --git a/images/en_US/ch1/AbnormalDataSavedDatabaseConfiguration.png b/images/en_US/ch1/AbnormalDataSavedDatabaseConfiguration.png new file mode 100644 index 0000000000000000000000000000000000000000..63d484582a8829e5c56749bada29eebc97c95f25 GIT binary patch literal 4363 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 literal 12847 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%0AkC$A%u1uoRv4 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 literal 0 HcmV?d00001 diff --git "a/images/zh_CN/ch1/\350\247\204\345\210\231\351\205\215\347\275\256\346\240\267\344\276\213.png" "b/images/zh_CN/ch1/\350\247\204\345\210\231\351\205\215\347\275\256\346\240\267\344\276\213.png" index ede080ca52146f52faa1b67d8874824563fa32f2..89ff149d8b90bbfab04d7caa9f799345da6c6d32 100644 GIT binary patch literal 8614 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 literal 12475 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