实时即未来,Dlink为Apache Flink而生,让Flink SQL 纵享丝滑,并致力于实时打算平台培植。
Dinky基于Apache Flink实现Dlink ,增强Flink的运用与体验,探索流式数仓。即站在巨人肩膀上创新与实践,Dinky在未来批流一体的发展趋势下潜力无限。
功能特性一个基于Apache Flink二次开拓且易扩展的一站式开拓运维FlinkSQL及SQL的实时打算平台。致力于办理实时与离线数据开拓、数仓培植流程中大量繁芜的数据口径,使实时、准实时、离线一体的数据开拓平台在数据管理流程中开箱即用。
其紧张目标如下:
可视化交互式 FlinkSQL 和 SQL 的数据开拓平台:自动提示补全、语法高亮、调试实行、语法校验、语句美化、全局变量等支持全面的多版本的 FlinkSQL 作业提交办法:Local、Standalone、Yarn Session、Yarn Per-Job、Kubernetes Session、Kubernetes Application支持 Apache Flink 所有的 Connector、UDF、CDC等支持 FlinkSQL 语法增强:兼容 Apache Flink SQL、表值聚合函数、全局变量、CDC多源合并、实行环境、语句合并、共享会话等支持易扩展的 SQL 作业提交办法:ClickHouse、Doris、Hive、Mysql、Oracle、Phoenix、PostgreSql、SqlServer 等支持实时调试预览 Table 和 ChangeLog 数据及图形展示支持语法逻辑检讨、作业实行操持、字段级血缘剖析等支持 Flink 元数据、数据源元数据查询及管理支持实时任务运维:作业上线下线、作业信息、集群信息、作业快照、非常信息、作业日志、数据舆图、即席查询、历史版本、报警记录等支持作为多版本 FlinkSQL Server 的能力以及 OpenApi支持易扩展的实时作业报警及报警组:钉钉、微信企业号等支持完备托管的 SavePoint 启动机制:最近一次、最早一次、指定一次等支持多种资源管理:集群实例、集群配置、Jar、数据源、报警组、报警实例、文档、用户、系统配置等Dinky事理图如何支配环境准备
单机支配
解压到指定目录:Dlink 不依赖任何外部的 Hadoop 或者 Flink 环境,可以单独支配在 flink、 hadoop 和 K8S 集群之外,完备解耦,支持同时连接多个不同的集群实例进走运维。
tar -zxvf dlink-release-0.5.0-SNAPSHOT.tar.gzmv dlink-release-0.5.0-SNAPSHOT dlinkcd dlink
初始化数据库:Dlink采取mysql作为后真个存储库,mysql支持5.6+。这里假设你已经安装了mysql。首先须要创建Dlink的后端数据库,这里以配置文件中默认库创建。
#登录mysqlmysql -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 -pdlinkmysql> create database dlink;
在dlink根目录sql文件夹下有2个sql文件,分别是dlink.sql和dlink_history.sql。如果第一次支配,可以直接将dlink.sql文件在dlink数据库下实行。(如果之前已经建立了 dlink 的数据库,那 dlink_history.sql 存放了各版本的升级 sql ,根据版本号按需实行即可)
#首先登录mysqlmysql -h fdw1 -udlink -pdlinkmysql> 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#接下来安装nginxyum -y install epel-releaseyum -y install nginxsudo systemctl enable nginxsudo service nginx startsudo service nginx reloadnginx -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 / 这里可以指定为绝对路径配置完成后,保存退出。并重启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
解压后构造如上所示,修正配置文件内容。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
元数据管理
当用户查看或者利用数据源中的DDL或者DML,可通过元数据中央获取数据源中的干系DDL或者DML。目前元数据中央包含:
表信息字段信息SQL天生个中在SQL天生中又包括:
FlinkDDL语句SELECT语句SQLDDL语句首先进入FlinkSQL Studio中的元数据,选择已经配置好的数据源,会涌现数据源对应的schema。
涌现以上schema后,查看schema下的表,右键单击schema下的表即可看到表信息,字段信息及SQL天生。
干系截图Studio 实行信息
SQL函数
集群中央
文档中央
添加用户
系统设置
—END—
开源协议:Apache-2.0
开源地址:https://gitee.com/DataLinkDC/Dinky