当前位置: 首页 > news >正文

flink sqlClient提交hiveIceberg

flink sqlClient提交hiveIceberg

  • 环境准备
  • sqlclient启动前准备
  • 启动sqlclient
  • init.sql
  • insert.sql

环境准备

组件名版本
flink客户端1.14.4-2.12
hadoop集群3.1.4
hive客户端3.1.2
icebergiceberg-flink-runtime-1.14-0.13.2.jar
iceberg-hive依赖iceberg-hive-runtime-0.13.2.jar

sqlclient启动前准备

sqlclient启动有两种方式,per-job、session。
session模式需先启动一个session,启动方式如下:

/home/hadoop/flink/bin/yarn-session.sh \
-t /home/hadoop/flink/sqlplugins \
-s 2 -jm 5120 -tm 5120 -qu default -nm iceberg_test1 -d

per-job模式需在flink客户端的flink-conf.yaml文件中添加如下参数:
execution.target: yarn-per-job
注意:

flink-conf.yaml文件中还设置了其他内容如下
classloader.resolve-order: parent-firstclassloader.check-leaked-classloader: false#kerberos相关配置
security.kerberos.login.use-ticket-cache: true
security.kerberos.login.keytab: /bigdata/apps/test/core.keytab
security.kerberos.login.principal: hadoop
security.kerberos.login.contexts: Client

启动sqlclient

-- yarn session模式
/home/hadoop/flink/bin/sql-client.sh  embedded \
-s appId \
-l /home/hadoop/flink/sqlplugins \
-i /home/hadoop/flink/script/init.sql \
-f /home/hadoop/flink/script/insert.sql \
shell-- yarn per-job模式
/home/hadoop/flink/bin/sql-client.sh  embedded \
-l /home/hadoop/flink/sqlplugins \
-i /home/hadoop/flink/script/init.sql \
-f /home/hadoop/flink/script/insert.sql \
shell

init.sql

set 'sql-client.verbose'='true';
SET 'execution.checkpointing.interval' = '60s';CREATE CATALOG ice_catalog WITH ('type' = 'iceberg','catalog-type' = 'hive','uri' = 'thrift://hdp02.bonc.com:9083','warehouse' = 'hdfs://beh001/tmp/','hive-conf-dir' = '/home/hadoop/flink/confdir','hadoop-conf-dir' = '/home/hadoop/flink/confdir'
);CREATE DATABASE IF NOT EXISTS ice_catalog.ice_db;CREATE TABLE IF NOT EXISTS ice_catalog.ice_db.ice_tb (deal_date string,chnl_id string,chnl_name string,region_code string,city_code string,chnl_third_class string,chnl_second_class string,chnl_first_class string,chnl_area_class string,chnl_eff_flag string,oper_id string,oper_name string,self_term_code string,air_term_code string,oper_eff_flag string,item_cls_type string,item_cls_desc string,item_grp_type string,item_grp_desc string,user_chnl_id string,user_chnl_name string,user_region_code string,user_city_code string,item_value1 decimal(14,2),item_value2 decimal(14,2),PRIMARY KEY (chnl_id ,oper_id) NOT ENFORCED
) WITH ('write.upsert.enabled' = 'true','write.metadata.previous-versions-max' = '10','write.metadata.delete-after-commit.enabled' = 'true','commit.manifest.min-count-to-merge' = '1','engine.hive.enabled' = 'true','table.dynamic-table-options.enabled' = 'true','format-version' = '2'
);CREATE TABLE csvSource (deal_date string COMMENT '处理日期',               chnl_id string COMMENT '渠道ID',                 chnl_name string COMMENT '渠道名称',               region_code string COMMENT '归属地市代码',           city_code string COMMENT '归属区县代码',             chnl_third_class string COMMENT '渠道三级类型',      chnl_second_class string COMMENT '渠道二级类型',     chnl_first_class string COMMENT '渠道一级类型',      chnl_area_class string COMMENT '渠道地域属性',       chnl_eff_flag string COMMENT '渠道有效标志',         oper_id string COMMENT '工号ID',                 oper_name string COMMENT '工号姓名',               self_term_code string COMMENT '自助终端标志',        air_term_code string COMMENT '空中充值标志',         oper_eff_flag string COMMENT '工号有效标志',         item_cls_type string COMMENT '指标大类代码',         item_cls_desc string COMMENT '指标大类名称',         item_grp_type string COMMENT '指标细项代码',         item_grp_desc string COMMENT '指标细项名称',         user_chnl_id string COMMENT '用户渠道ID',          user_chnl_name string COMMENT '用户渠道名称',        user_region_code string COMMENT '用户归属地市代码',    user_city_code string COMMENT '用户归属区县代码',      item_value1 decimal(14,2) COMMENT '指标值1',      item_value2 decimal(14,2) COMMENT '指标值2'
) WITH ('connector' = 'filesystem','path' = 'hdfs://beh001/tmp/originData/csvSource.txt','format' = 'csv','csv.field-delimiter' = ','
);

insert.sql

insert intoice_catalog.ice_db.ice_tb
selectdeal_date  ,               chnl_id  ,                 chnl_name  ,               region_code  ,           city_code  ,             chnl_third_class  ,      chnl_second_class  ,     chnl_first_class  ,      chnl_area_class  ,       chnl_eff_flag  ,         oper_id  ,                 oper_name  ,               self_term_code  ,        air_term_code  ,         oper_eff_flag  ,         item_cls_type  ,         item_cls_desc  ,         item_grp_type  ,         item_grp_desc  ,         user_chnl_id  ,          user_chnl_name  ,        user_region_code  ,    user_city_code  ,      item_value1,      item_value2
fromcsvSource;
http://www.lryc.cn/news/241030.html

相关文章:

  • SpringBoot 导入其他配置文件
  • 景区智慧旅游智能化系统方案:PPT全文58页,附下载
  • Java特殊文件读取案例Properties
  • 搜维尔科技:Faceware面部捕捉最佳实践!
  • 如何使用ArcGIS Pro进行坐标转换
  • Python----类对象和实例对象
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • MySQL错误之ONLY_FULL_GROUP_BY
  • 牛客 HJ106 字符逆序 golang实现
  • 浏览器没收到返回,后端也没报错,php的json_encode问题bug
  • C#中的迭代器和分部类
  • Java项目如何打包成Jar(最简单)
  • 快速掌握Pyqt5的三种主窗口
  • Linux vim操作教程(vim 基操、vim替换和查找、 vim改变文本颜色、判断和循环语句)
  • mac添加Chrome插件的方法
  • 智能优化算法 | Matlab实现金豺优化算法(GJO)(内含完整源码)
  • 6、信息打点——Web架构篇语言中间件数据库系统源码获取
  • flutter vscode gradle 配置
  • tcp和 udp区别
  • 深度学习之基于Pytorch的昆虫分类识别系统
  • mysql字符串转为数字的三种方法、字符串转日期
  • 【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷5
  • PTA-6-45 工厂设计模式-运输工具
  • 重新使用hbase前
  • Web 自动化神器 TestCafe(二)—元素定位篇
  • DRF-通用分页器(PageNumberPagination):ListModelMixin可以使用的通用分页器
  • 移动机器人,开启智能柔性制造新篇章
  • 视频云存储EasyCVR平台国标接入获取通道设备未回复是什么原因?该如何解决?
  • 【Web题】狼追兔问题
  • 4-Docker命令之docker info