Dinky - FlinkSQL Studio & 实时计算平台 大数据 ETL flink


https://hub.docker.com/r/dinkydocker/dinky-standalone-server

https://github.com/DataLinkDC/dlink/releases

http://www.dlink.top/

https://gitee.com/DataLinkDC/dlink

http://www.dlink.top/#/zh-CN/introduce


docker run -d --restart=always  --name dinky  -p 8888:8888 -p 8081:8081  -e MYSQL_ADDR='mariadb:3306' -e TZ='Asia/Shanghai'   --ulimit nofile=262144:262144  -v /etc/localtime:/etc/localtime:ro  -v /data/site/docker/env/bizdata/dlink:/opt/dinky/lib:rw  --link mariadb  dinkydocker/dinky-standalone-server:0.7.4-flink15


http://g.htmltoo.com:8888

默认用户名/密码: admin/admin


docker exec -it dinky /bin/bash


-dinky-mysql

source /opt/dinky/sql/dinky-mysql.sql


docker cp /data/site/docker/env/bizdata/dlink/clickhouse-jdbc-0.4.6.jar   dinky:/opt/dinky/lib/clickhouse-jdbc-0.4.6.jar

docker cp /data/site/docker/env/bizdata/dlink/mysql-connector-java-8.0.30.jar  dinky:/opt/dinky/lib/mysql-connector-java-8.0.30.jar


---环境准备

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+


---Dinky源码编译

git clone https://github.com/DataLinkDC/dlink.git

cd dlink 

mvn clean install -Dmaven.test.skip=true

Copy to clipboardErrorCopied

切换到Dinky根目录下得build文件夹下,即可出现编译后的安装包。


tar -zxvf dlink-release-0.5.0-SNAPSHOT.tar.gz

mv dlink-release-0.5.0-SNAPSHOT dlink

cd dlink


---初始化数据库

grant all privileges on *.* to 'dlink'@'%' identified by 'dlink' with grant option;

grant all privileges on *.* to 'dlink'@'fdw1' identified by 'dlink'  with grant option;

flush privileges;

mysql -h fdw1  -udlink -pdlink

create database dlink;

-在dlink根目录sql文件夹下有2个sql文件,分别是dlink.sql和dlink_history.sql。如果第一次部署,可以直接将dlink.sql文件在dlink数据库下执行。(如果之前已经建立了 dlink 的数据库,那 dlink_history.sql 存放了各版本的升级 sql ,根据版本号按需执行即可)

use dlink;

source /opt/dlink/sql/dlink.sql


---配置文件

cd /opt/dlink/config/

vim application.yml


---nginx中配置dlink

  server {
        listen       9999;
        ......
        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;
        }


---加载依赖

#创建目录

cd /opt/dlink/

mkdir plugins

-根目录下创建 plugins 文件夹并上传相关的 Flink 依赖,如 flink-dist, flink-table 等,具体请阅 Readme(后续的扩展依赖也放到该目录下)

https://mvnrepository.com/artifact/org.apache.flink

将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

解压后结构如上所示,修改配置文件内容。lib 文件夹下存放 dlink 自身的扩展文件,plugins 文件夹下存放 flink 及 hadoop 的官方扩展文件( 如果plugins下引入了flink-shaded-hadoop-3-uber 或者其他可能冲突的jar,请手动删除内部的 javax.servlet 等冲突内容)。其中 plugins 中的所有 jar 需要根据版本号自行下载并添加,才能体验完整功能,当然也可以放自己修改的 Flink 源码编译包。extends 文件夹只作为扩展插件的备份管理,不会被 dlink 加载。

请检查 plugins 下是否添加了 flink 对应版本的 flink-dist,flink-table,flink-shaded-hadoop-3-uber 等如上所示的依赖!!!

请检查 plugins 下是否添加了 flink 对应版本的 flink-dist,flink-table,flink-shaded-hadoop-3-uber 等如上所示的依赖!!!

请检查 plugins 下是否添加了 flink 对应版本的 flink-dist,flink-table,flink-shaded-hadoop-3-uber 等如上所示的依赖!!!

如果plugins下引入了flink-shaded-hadoop-3-uber 的jar,请手动删除内部的 javax.servlet 后既可以访问默认 8888 端口号(如127.0.0.1:8888),正常打开前端页面。

如果是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


访问 127.0.0.1:8000 可见登录页

默认用户名/密码:admin/admin


Dinky 为 Apache Flink 而生,让 Flink SQL 纵享丝滑,并致力于实时计算平台建设。

Dinky 架构于 Apache Flink,增强 Flink 的应用与体验,探索流式数仓。


--基本概念

-JobManager

JobManager 作为 Dinky 的作业管理的统一入口,负责 Flink 的各种作业执行方式及其他功能的调度。

-Executor

Executor 是 Dinky 定制的 FlinkSQL 执行器,来模拟真实的 Flink 执行环境,负责 FlinkSQL 的 Catalog 管理、UDF管理、片段管理、配置管理、语句集管理、语法校验、逻辑验证、计划优化、生成 JobGraph、本地执行、远程提交、SELECT 及 SHOW 预览等核心功能。

-Interceptor

Interceptor 是 Dinky 的 Flink 执行拦截器,负责对其进行片段解析、UDF注册、SET 和 AGGTABLE 等增强语法解析。

-Gateway

Gateway 并非是开源项目 flink-sql-gateway,而是 Dinky 自己定制的 Gateway,负责进行基于 Yarn 环境的任务提交与管理,主要有Yarn-Per-Job 和 Yarn-Application 的 FlinkSQL 提交、停止、SavePoint 以及配置测试,而 User Jar 目前只开放了 Yarn-Application 的提交。

-Flink SDK

Dinky 主要通过调用 flink-client 和 flink-table 模块进行二次开发。

-Yarn SDK

Dinky 通过调用 flink-yarn 模块进行二次开发。

-Flink API

Dinky 也支持通过调用 JobManager 的 RestAPI 对任务进行管理等操作,系统配置可以控制开启和停用。

-Yarn-Session

Dinky 通过已注册的 Flink Session 集群实例可以对 Standalone 和 Yarn-Session 两种集群进行 FlinkSQL 的提交、Catalog 的交互式管理以及对 SELECT 和 SHOW 等语句的执行结果预览。

-Yarn-Per-Job

Dinky 通过已注册的集群配置来获取对应的 YarnClient 实例,然后将本地解析生产的 JobGraph 与 Configuration 提交至 Yarn 来创建 Flink-Per-Job 应用。

-Yarn-Application

Dinky 通过已注册的集群配置来获取对应的 YarnClient 实例。对于 User Jar,将 Jar 相关配置与 Configuration 提交至 Yarn 来创建 Flink-Application 应用;对于 Flink SQL,Dinky 则将作业 ID 及数据库连接配置作为 Main 入参和 dlink-app.jar 以及 Configuration 提交至 Yarn 来创建 Flink-Application 应用。


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回