Commit 94960621 authored by walkhan's avatar walkhan

add deploy document

parent e990a130
* [首页](/zh-CN/introduce.md)
* 文档
* [快速开始](/guide/quickstart.md)
* [发展计划](/guide/roadmap.md)
* [编译部署](/guide/deploy.md)
* [核心功能](/guide/functions.md)
* [开发调试](/guide/debug.md)
* [master]()
* [dev](/zh-CN/introduce.md)
* [0.5.1]()
* [0.5.0]()
* 下载
* [扩展语法补全](/extend/completion.md)
* [扩展自定义函数](/extend/udf.md)
* [扩展连接器](/extend/connector.md)
* [扩展数据源](/extend/datasource.md)
* [扩展 Flink 版本](/extend/flinkversion.md)
* [Flink-CDC 集成](/extend/flinkcdc.md)
* [DolphinScheduler 集成](/extend/dolphinscheduler.md)
* [DataSphereStudio 集成](/extend/dataspherestudio.md)
* [Hive 集成](/extend/hive.md)
* [Doris 集成](/extend/doris.md)
* [Clickhouse 集成](/extend/clickhouse.md)
* [Hudi 集成](/extend/hudi.md)
* [Iceberg 集成](/extend/hudi.md)
* [Flink CDC和Kafka进行多源合并和下游同步更新](/extend/Flink_CDC_kafka_Multi_source_merger.md)
* [下载](/zh-CN/quick_start/download.md)
* 开发者
* [Dlink Yarn 的三种提交实践](/share/yarnsubmit.md)
* [Dlink AGGTABLE 表值聚合的实践](/share/aggtable.md)
* [Dlink 核心概念及实现原理详解](/share/principle.md)
* [开发调试](/zh-CN/developer-guide/debug.md)
* 用户案例
* [OpenAPI](/api/openapi.md)
* 语言
* [中文](/zh-CN/)
......
......@@ -7,7 +7,6 @@
- [基本概念](/zh-CN/concept.md)
- [功能](/zh-CN/feature.md)
- 入门
- [下载](/zh-CN/quick_start/download.md)
- [编译](/zh-CN/quick_start/build.md)
- [部署](/zh-CN/quick_start/deploy.md)
- 基本使用指南
......@@ -54,8 +53,6 @@
- [FlinkSQL 编辑器自动补全函数](/zh-CN/extend/completion.md)
- 开发者指南
- 常见问题
- 历史版本
- [近期计划](/zh-CN/others/plans.md)
- [致谢](/zh-CN/others/thanks.md)
- [交流与贡献](/zh-CN/others/comminicate.md)
- [roadmap](/zh-CN/roadmap.md)
......
......@@ -61,7 +61,7 @@ IDEA 里 Build → Build Project 。
mvn clean install -Dmaven.test.skip=true
```
打包最终位于根目录 build 下,`dlink-release-0.5.0-SNAPSHOT.tar.gz` 其大小约为 40 M。
打包最终位于根目录 build 下,`dlink-release-x.x.x.tar.gz` 其大小约为 40 M。
### 问题
......@@ -280,9 +280,7 @@ Dlink 的官网实现,大佬们可以修改或贡献 markdown。多多分享
注册集群配置 ==> 异步提交 ==> StudioService ==> JobManager ==> Executor ==> TaskId & JDBC ==> Gateway ==> YarnApplicationGateway==> YarnClient ==> dlink-app.jar ==> Executor ==> AppStreamExecutor ==> CustomTableEnvironmentImpl ==> LocalEnvironmentFlink Yarn Application Cluster
## 总结
## 说明
以为内容为大家带来了 Dlink 的基本功能 IDEA 部署调试步骤,并简单介绍了各模块的作用,也清晰的描述了各执行模式下 FlinkSQL 实现免 Jar 提交的代码思路。在了解以上内容后,相信大家已经可以动手改造 Dlink 了,欢迎大家及时加入 Dlink 社区成为核心贡献者,共建共赢。
后续文章将指引大家如何快速拓展 Dlink 的功能组件,敬请期待。
以为内容是 Dinky在IDEA 部署调试步骤,并简单介绍了各模块的作用,也清晰的描述了各执行模式下 FlinkSQL 实现免 Jar 提交的代码思路。在了解以上内容后,可以动手改造 Dinky。
## 环境准备
| **环境** | **版本** | 备注 |
| -------- | --------- | --------------------------------- |
| npm | 7.19.0 | |
| node.js | 14.19.0 | |
| jdk | 1.8.0_201 | |
| maven | 3.6.3 | |
| lombok | 1.18.16 | 如果在idea编译,需要自行安装 插件 |
| mysql | 5.6+ | |
## NodeJS 安装部署
### Windows版本
[下载地址]( <https://registry.npmmirror.com/-/binary/node/v14.19.0/node-v14.19.0-x64.msi>)
下载完成后,双击傻瓜式安装即可
由于Dinky编译NPM最低版本为7.19.0,因此需要把NPM版本升级到7.19.0。具体操作如下
```
npm install -g npm@7.19.0
```
### Linux 版本
[下载地址]( <https://registry.npmmirror.com/-/binary/node/v14.19.0/node-v14.19.0.tar.gz>)
下载完成后,安装配置即可,操作如下:
```
tar xf node-v14.19.0.tar.gz -C /opt/module/
vim /etc/profile
export NODEJS_HOME=/opt/module/node-v14.19.0
export PATH=$NODEJS_HOME/bin:$PATH
#保存退出
source /etc/profile #刷新环境变量
```
由于Dinky编译NPM最低版本为7.19.0,因此需要把NPM版本升级到7.19.0。具体操作如下:
```
npm install -g npm@7.19.0
```
## MySQL部署
MySQL版本选择5.6+
### Windows版本
[下载地址](<https://dev.mysql.com/downloads/file/?id=510038>)
下载完成后,双击傻瓜式安装即可
### Linux 版本
[下载地址]( [http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm](http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm))
下载完成后,安装配置即可,操作如下:
```
#如果没有wget命令
yum install wget
#下载mysql 5.7
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
#安装yum repository
yum -y install mysql57-community-release-el7-11.noarch.rpm
#在线安装
yum -y install mysql-community-server
#修改配置文件
vi /etc/my.cnf
skip-grant-tables #末尾添加这句话,这时候登入mysql就不需要密码
#开启mysql服务
service mysqld start
#空密码登录mysql
mysql -u root -p
#设置root密码
flush privileges;
set password for root@localhost = password('123456');
#恢复mysql配置
service mysqld stop #停止mysql服务
vi /etc/my.cnf #修改配置文件
# skip-grant-tables # 注释掉这句话
service mysqld start # 启动mysql服务
#设置开机自启动
systemctl enable mysqld
-------------------------------修改密码策略-------------------------
vi /etc/my.cnf
在 [mysqld]下面添加
validate_password=off
collation_server = utf8mb4_general_ci
character_set_server = utf8mb4
#重启服务
service mysqld restart 或者 systemctl restart mysqld.service
#卸载自动更新
yum -y remove mysql57-community-release-el7-11.noarch
------------------------------------远程连接----------------------------
#输入mysql -uroot -p123456 进入到mysql命令行
#授权
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
#刷新权限
flush privileges;
---------------------------------修改默认编码-------------------------------------------
#root用户
vi /etc/my.cnf
#添加如下内容
[client]
default_character_set=utf8mb4
#重启mysql服务
service mysqld restart
#查看修改结果
mysql -u root -p
SHOW VARIABLES LIKE 'char%'; 字符编码
SHOW VARIABLES LIKE 'collation_%'; 排序规则
#显示为utf-8
#已存在的表编码不变
#改变的是新建的表
```
## Maven 安装部署
### Windows版本
[下载地址](<https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip>)
下载完成后后,解压到对应目录
```
1.将安装包解压到某目录,这里解压到C:\Program Files\apache-maven-3.6.3
3.设置系统变量MAVEN_HOME,值为C:\Program Files\apache-maven-3.6.3
4. 更新 PATH 变量,添加 Maven bin 文件夹到 PATH 的最后,%MAVEN_HOME%\bin
完成,以验证它,执行 mvn –v 在命令提示符
```
### Linux 版本
[下载地址](<https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz>)
下载完成后后,解压到对应目录
解压安装
```
tar xf apache-maven-3.6.3-bin.tar.gz -C /opt/module/
cd /opt/module/
mv apache-maven-3.6.3-bin maven-3.6.3
#添加环境变量
vim /etc/profile
export MAVEN_HOME=/opt/module/maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
#保存退出,刷新环境变量
source /etc/profile
```
以上环境准备就绪后,接下来就可以开始Dinky的编译。
## Dinky编译
### Windows编译
#### 直接编译
如果在window直接编译,首先将源码包解压到相应目录下,其次切换到Dinky根目录,编译命令如下:
```
mvn clean install -Dmaven.test.skip=true
```
切换到Dinky根目录下得build文件夹下,即可出现编译后的安装包
#### IDEA编译
```
创建 远程克隆项目
maven ->> dlink->> 生命周期->> 跳过测试 ->> 双击install
打包完成后 安装包见项目根下 build 文件夹下
```
说明:如果要对dinky做二次开发,请参考[开发调试](/zh-CN/developer-guide/debug.md)
### Linux编译
```
yum -y install git
git clone https://github.com/DataLinkDC/dlink.git
cd dlink
mvn clean install -Dmaven.test.skip=true
```
切换到Dinky根目录下得build文件夹下,即可出现编译后的安装包。
以上就是Dinky源码编译的详细步骤,Dinky如何安装部署,请查看下一章节[Dinky部署](/zh-CN/quick_start/deploy.md)
## 单机部署
### 解压到指定目录
Dlink 不依赖任何外部的 Hadoop 或者 Flink 环境,可以单独部署在 flink、 hadoop 和 K8S 集群之外,完全解耦,支持同时连接多个不同的集群实例进行运维。
```
tar -zxvf dlink-release-0.5.0-SNAPSHOT.tar.gz
mv dlink-release-0.5.0-SNAPSHOT dlink
cd dlink
```
说明:安装目录根据自身情况而定。
### 初始化数据库
Dlink采用mysql作为后端的存储库,mysql支持5.6+。这里假设你已经安装了mysql。首先需要创建Dlink的后端数据库,这里以配置文件中默认库创建。
```
#登录mysql
mysql -uroot -proot@123
#授权并创建数据库
mysql> grant all privileges on *.* to 'dlink'@'%' identified by 'dlink' with grant option;
mysql> grant all privileges on *.* to 'dlink'@'fdw1' identified by 'dlink' with grant option;
mysql> flush privileges;
#此处用dlink用户登录
mysql -h fdw1 -udlink -pdlink
mysql> create database dlink;
```
在dlink根目录sql文件夹下有2个sql文件,分别是dlink.sql和dlink_history.sql。如果第一次部署,可以直接将dlink.sql文件在dlink数据库下执行。(如果之前已经建立了 dlink 的数据库,那 dlink_history.sql 存放了各版本的升级 sql ,根据版本号按需执行即可)
```
#首先登录mysql
mysql -h fdw1 -udlink -pdlink
mysql> use dlink;
mysql> source /opt/dlink/sql/dlink.sql
```
### 配置文件
创建好数据库后,就可以修改dlink连接mysql的配置文件啦,根据个人情况修改。配置文件比较简单,这里就不多说了。
```
#切换目录
cd /opt/dlink/config/
vim application.yml
```
配置文件修改好后,下一步就是安装nginx。如果已安装nginx可以忽略。因为Dlink部署需要nginx,所以先要部署nginx,配置完成后,才能正常启动。
执行完成后,接下来,部署nginx服务。
### 部署nginx
在linux,首先要配置好相应的yum库,因为在安装过程中没有配置,这里可以大概讲述下步骤,可以选择连接网络或者本地yum源都可以,这里选择连接网络方式配置。
```
#下载yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#清除缓存
yum makecache
#接下来安装nginx
yum -y install epel-release
yum -y install nginx
sudo systemctl enable nginx
sudo service nginx start
sudo service nginx reload
nginx -v
#最后查看进程看是否正常启动
ps -ef|grep nginx
```
说明:Dinky-0.5.0以上版本部署nginx可选
### nginx中配置dlink
如果是yum源安装的nginx,配置文件在etc下,如果是源码包安装,请自行找到配置文件
```
#切换到nginx配置目录
cd /etc/nginx/
```
vim /etc/nginx/nginx.conf打开配置文件,修改server中的内容,其中server中的内容按照如下配置即可。
```
server {
listen 9999;
#listen [::]:80;
server_name bigdata3;
root /usr/share/nginx/html;
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
root html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ^~ /api {
proxy_pass http://192.168.0.0:8888;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
修改内容:
- listen 监听端口;
- 存放html路径;
- location / 这里可以指定为绝对路径
红色部分就是所修改的地方
![img](https://uploader.shimo.im/f/oMgh98EYnLQLfoD6.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NDQ0ODA0NjgsImciOiJLd3Zwd0NnV2gzSFZnRDlDIiwiaWF0IjoxNjQ0NDgwMTY4LCJ1c2VySWQiOjE2NTQ4MzA4fQ.e31W51Lq59fEeB-ZQREcAIYIiJWHsQVXGRkMcyMgLFI)
配置完成后,保存退出。并重启nginx并重新加载生效
```
$systemctl restart nginx.service
$systemctl reload nginx.service
#查看nginx是否配置成功
nginx -t
$nginx -s reload
```
### 加载依赖
Dinky具备自己的 Flink 环境,该 Flink 环境的实现需要用户自己在Dinky 根目录下创建 plugins 文件夹并上传相关的 Flink 依赖,如 flink-dist, flink-table 等,具体请阅 Readme(后续的扩展依赖也放到该目录下)。当然也可在启动文件中指定 FLINK_HOME,但不建议这样做。
Dinky当前版本的yarn的perjob与application执行模式依赖Flink-shade-hadoop去启动,需要额外添加Flink-shade-hadoop 包。
```
#创建目录
cd /opt/dlink/
mkdir plugins
```
将Flink-shade-hadoop上传到到plugins文件目录下,对于使用hadoop2 或者 hadoop 3 的均可使用 flink-shade-hadoop-3 地址如下:
```
https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?repo=cloudera-repos
```
如果是CDH及HDP使用开源flink-shade对Dlink没有任何影响,其他用到的依赖取决于CDH或者HDP与开源版本的兼容性,需要自行根据兼容性添加依赖即可正常使用 Dlink 的所有功能。
### 启动Dlink
```
#启动
$sh auto.sh start
#停止
$sh auto.sh stop
#重启
$sh auto.sh restart
#查看状态
$sh auto.sh status
```
看到如下界面说明Dlink部署成功
![img](https://uploader.shimo.im/f/gdvs70SrmbWCdJRx.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NDQ0ODA3NjAsImciOiJLd3Zwd0NnV2gzSFZnRDlDIiwiaWF0IjoxNjQ0NDgwNDYwLCJ1c2VySWQiOjE2NTQ4MzA4fQ.GmZh-wGeO5dBQ-2Cz_5EzwSsKmNJML3wX2_Tj9s8fxw)
默认用户名/密码:admin/admin
如果访问失败,请检查防火墙是否关闭、Nginx的配置是否正确
## 高可用部署
敬请期待
## Dinky 下载
### 发行说明
dinky 版本的[发行说明](/zh-CN/release_notes/dinky-0.5.1.md)
### 当前稳定版本 0.5.1
| 发布版 | 链接 | |
| ---------- | ------------------------------------------------------------ | ---- |
| 二进制程序 | [dlink-release-0.5.1.tar.gz](https://github.com/DataLinkDC/dlink/releases/download/0.5.1/dlink-release-0.5.1.tar.gz) | |
| source | [Source code (zip)](https://github.com/DataLinkDC/dlink/archive/refs/tags/0.5.1.zip) | |
### 旧版本
| 发布版 | 二进制程序 | Source | 发行说明 |
| ------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -------- |
| 0.5.0 | [dlink-release-0.5.0.tar.gz](https://github.com/DataLinkDC/dlink/releases/download/0.5.0/dlink-release-0.5.0.tar.gz) | [Source code (zip)](https://github.com/DataLinkDC/dlink/archive/refs/tags/0.5.0.zip) | [发行说明](/zh-CN/release_notes/dinky-0.5.0.md) |
| 0.4.0 | [dlink-release-0.4.0.tar.gz](https://github.com/DataLinkDC/dlink/releases/download/0.4.0/dlink-release-0.4.0.tar.gz) | [Source code (zip)](https://github.com/DataLinkDC/dlink/archive/refs/tags/0.4.0.zip) | [发行说明](/zh-CN/release_notes/dinky-0.4.0.md) |
## Dinky发行说明
Dinky 0.4.0是对FlinkSQL Studio的正式开源发布版本。
#### 新增功能
- 支持standalone,yarn-session,yarn-per-job,yarn-application 多种模式的 FlinkSQL 执行与作业运维;
- 支持yarn-application 的 User Jar 提交;
- 支持SavePoint 管理与恢复;
- 支持SELECT 和 SHOW 语句预览;
- 支持SQL片段、AGGTABLE、语句集等语法增强;
- 支持依据文档模块或SQL上下文的自动提示与补全;
- 支持sql-client 的所有语法;
- 支持FlinkSQL 语法及逻辑校验;
- 支持表级血缘分析;
- 支持StreamGraph 计划图预览;
- 支持共享会话模式及其 Catalog 管理;
- 支持数据源管理及元数据查询;
- 支持集群及配置管理;
- 支持文档管理;
- 支持Jar 管理;
- 支持用户管理;
- 支持系统配置;
\ No newline at end of file
## Dinky发行说明
Dinky 0.5.0版本包括对K8S的支持以及数据库,catalog的实现。它还包括对0.4.0 中引入的一些重大更改的修复。
#### 新增功能
- 支持Kubernetes Session 和 Application 模式提交任务
- 新增UDF Java方言的Local模式的在线编写、调试、动态加载
- 新增FlinkSQL 执行环境方言及其应用功能
- 新增BI选项卡的折线图、条形图、饼图
- 新增元数据查看表和字段信息
- 新增ChangLog 和 Table 的查询及自动停止实现
- 新增Mysql,Oracle,PostGreSql,ClickHouse,Doris,Java 方言
- 新增OpenAPI 的执行sql、校验sql、获取计划图、获取StreamGraph、获取预览数据、执行Jar、停止、SavePoint接口
- 新增数据源的 Sql 作业语法校验和语句执行
- 新增快捷键保存、校验、美化等
- 新增引导页
- 新增JobPlanGraph 展示
- 新增SQLServer Jdbc Connector 的实现
- 新增Local 的运行模式选择与分类
- 新增SavePoint 的 restAPI 实现
- 新增编辑器选项卡右键关闭其他和关闭所有
- 新增FlinkSQL 及 SQL 导出
- 新增集群与数据源的 Studio 管理交互
- 新增Yarn 的 Kerboros 验证
- 建立官网文档
#### 修复
- 修改项目名为 Dinky 以及图标
- 优化所有模式的所有功能的执行逻辑
- 升级各版本 Flink 依赖至最新版本以解决核弹问题
- 修复编辑集群配置测试后保存会新建的bug
- 修复登录页报错弹框
- 修复Yarn Application 解析数组异常问题
- 修复自定义Jar配置为空会导致异常的bug
- 修复任务提交失败时注册集群报错的bug
- 修复set在perjob和application模式不生效的问题
- 修复perjob和application模式的任务名无法自定义的问题
- 修复set 语法在1.11和1.12的兼容问题
- 修复血缘分析图由于前端依赖无法正常加载的问题
## Dinky发行说明
Dinky 0.5.1 是一个修复版本,其中包括针对前端问题(如优化SQL编辑器性能)的优化。它还包括对0.5.0 中引入的一些重大更改的修复。
#### 前端
- 修复SHOW和DESC 的查询预览失效;
- 修复作业非remote作业进行remote语法校验的问题;
- 优化菜单;
- 修复前端多处bug;
- 新增F2 全屏开发;
- 升级SpringBoot 至 2.6.3
- 修复前端 state 赋值 bug
- 修复异常预览内容溢出 bug
- 修复数据预览特殊条件下无法获取数据的 bug
- 优化SQL编辑器性能
- 修复全屏开发退出后 sql 不同步
- 优化作业配置查看及全屏开发按钮
- 新增K8S集群配置
#### 后端
- 增加dlink-client-hadoop 版本定制依赖
- 优化pom及升级log4j至最新
- 升级Flink 1.14.2 到 1.14.3
- 修复Flink 1.14 提交任务报错缺类 bug
- 优化日志依赖
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment