利用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.

根据自己电脑情况调整一下资源请求就好了

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐