Flink on K8s安装与使用
1.安装K8S2.安装HelmHelm可以帮忙管理k8s的应用。curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3chmod 700 get_helm.sh./get_helm.sh
利用Ververica Platform搭建flink on k8s非常简单网址 在这里
一、安装
1.安装K8S
参考上篇博客K8S原理、安装和部署
2.安装Helm并加入环境变量
Helm可以帮忙管理k8s的应用,如果没有用helm,需要分别部署deployment、service等比较麻烦。用它来安装minio和vvp,如果下载很慢,可以根据官网选择其他安装方式
wget https://get.helm.sh/helm-v3.5.4-linux-amd64.tar.gz
tar -xvzf helm-v3.5.4-linux-amd64.tar.gz
mv linux-amd64/helm helm
#添加环境变量
vim ~/.bashrc
export HELM_HOME=/opt
export PATH=$PATH:$HELM_HOME
source ~/.bashrc
3.设置组件
git clone --branch release-2.5 https://github.com/ververica/ververica-platform-playground.git cd ververica-platform-playground
首先到ververica-platform-playground目录下输入./setup.sh --edition community就可以完成以下所有步骤,如果要安装 Grafana就加上--with-metrics就行了,如果成功,可以看到以下信息
如果要开启网页访问 kubectl --namespace vvp port-forward services/vvp-ververica-platform 8080:80
或者kubectl --namespace vvp port-forward --address localhost,0.0.0.0 services/vvp-ververica-platform 8090:80然后到 http://localhost:8080就可以访问了
看一下pod情况,注意看一下ready和status是否正确,如果ready那里是2/3或者status是pending,就说明pod有异常。
二、使用
1.使用FLink SQL
1.1创建Deployment Target
在administrator里面,新建一个部署目标,注意namespace里面要填写vvp-jobs
1.2创建Session Cluster
下面红框这边选择刚才创建的部署目标,其他默认或者自己选一下
1.3使用flink sql
CREATE TABLE orders (
id BIGINT,
ordertime TIMESTAMP(3),
totalprice DECIMAL(6,2),
customerid BIGINT,
WATERMARK FOR ordertime AS ordertime
) WITH (
'connector' = 'datagen',
'rows-per-second' = '10'
)
select * from orders
每隔10s计算订单数和订单总额
SELECT
TUMBLE_ROWTIME(ordertime, INTERVAL '10' SECONDS) AS windowtime,
COUNT(*) AS numorders,
SUM(totalprice) AS sumtotalprice
FROM orders
GROUP BY
TUMBLE(ordertime, INTERVAL '10' SECONDS)
如果是生产,数据需要落地其他表
#创建数据库和catelog_name
CREATE CATALOG vvpcatalog
WITH (
'type' = 'vvp',
'defaultDatabase' = 'vvpdb')
#也可以设置成hive
CREATE CATALOG hive_metastore
WITH (
'type' = 'hive',
'hive-conf-dir' = '/opt/hive/conf',
'hive-version' = '3.1.2'
)
#建表
CREATE TABLE vvpcatalog.vvpdb.order_stats (
windowtime TIMESTAMP(3),
numorders BIGINT,
sumtotalprice DECIMAL(20,2)
) WITH (
'connector' = 'print'
);
#写数
INSERT INTO vvpcatalog.vvpdb.order_stats
SELECT
TUMBLE_ROWTIME(ordertime, INTERVAL '10' SECONDS) AS windowtime,
COUNT(*) AS numorders,
SUM(totalprice) AS sumtotalprice
FROM orders
GROUP BY
TUMBLE(ordertime, INTERVAL '10' SECONDS)
select * from vvpcatalog.vvpdb.order_stats;
部署
2.使用jar提交任务
如果是自己编写代码的,直接上传jar包就ok了
4.删除安装
如果要撤销helm部署的应用和删除创建的空间,运行./teardown.sh就行了
手工删除pods要先删除部署,不然会自愈 kubectl delete deployment <minio> -n vvp <>里面是任务名
然后kubectl delete pods <minio-54d665fbd5-zq5jv> --grace-period=0 --force -n vvp <>里面是pod名称
5.报错信息:
在安装过程中可能遇到各种报错,比如
deployment.apps/minio condition met
error: timed out waiting for the condition on deployments/vvp-ververica-platform
可以看看pod的event用kubectl describe po -n vvp 看到报错信息 是cpu不够或者内存不够
default-scheduler 0/1 nodes are available: 1 Insufficient cpu.
根据自己电脑情况调整一下资源请求就好了
更多推荐
所有评论(0)