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 |
| iceberg | iceberg-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;相关文章:
flink sqlClient提交hiveIceberg
flink sqlClient提交hiveIceberg 环境准备sqlclient启动前准备启动sqlclientinit.sqlinsert.sql 环境准备 组件名版本flink客户端1.14.4-2.12hadoop集群3.1.4hive客户端3.1.2icebergiceberg-flink-runtime-1.14-0.13.2.jariceberg-hive依赖iceberg-hive-runtime-0.13.2.jar s…...
SpringBoot 导入其他配置文件
默认情况下,springboot 初始的项目中都有一个 application.yml 或者 application.properties 文件,如果我们希望再定义一个独立的配置文件用来配置特定业务数据,而不希望把这些配置内容都堆积在 application 配置文件中,实现这个需…...
景区智慧旅游智能化系统方案:PPT全文58页,附下载
关键词:智慧景区解决方案,智慧文旅解决方案,智慧旅游解决方案,智慧文旅综合运营平台 一、景区智慧旅游智能化系统建设背景 近年来,随着信息技术的快速发展和普及,以及旅游市场的不断扩大和升级࿰…...
Java特殊文件读取案例Properties
代码 package com.itheima.d1;import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.util.Properties;public class Test3 {public static void main(String[] args) throws Exception {//目标:读取属性文件…...
搜维尔科技:Faceware面部捕捉最佳实践!
视频源和分辨率: 我们的软件针对 RGB 彩色素材进行了优化,不支持使用红外摄像机。 我们建议视频分辨率为 720p 和 1080p。低于 720p 的分辨率可能会对跟踪质量产生负面影响,而高于 1080p 的分辨率会导致存储要求和传输时间增加,而…...
如何使用ArcGIS Pro进行坐标转换
不同来源的数据坐标系可能是不同的,为了统一使用这些数据就需要进行坐标转换,ArcGIS Pro作为专业的GIS软件,坐标转换功能肯定也是包含的,这里为大家介绍一下ArcGIS Pro如何进行坐标转换,希望能对你有所帮助。 数据来源…...
Python----类对象和实例对象
目录 一.类和类的实例 二.类属性和实例属性 三.私有属性和公有属性 四.静态方法和类方法 五.__init__方法,__new__方法和__del__方法: 六.私有方法和公有方法 七.方法的重载 八.方法的继承 九.方法的重写 十.对象的特殊方法 十一.对象的引用&a…...
[23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
paper | proj | code 提出一种基于K-Planes的4D point cloud Representation;提出一种Hybrid appearance model,包含image blending model和SH model。其中,image blending model将3D点映射回原图中求得,SH model通过模型预测求得…...
MySQL错误之ONLY_FULL_GROUP_BY
报错信息: 翻译: 对该报错的解释 所以,实际上该报错是由于在SQL查询语句中有group by,而这个包含group by的SQL查询写的并不规范导致的,这个ONLY_FULL_GROUP_BY模式开启之后检查就会很严格,如果select列表…...
牛客 HJ106 字符逆序 golang实现
牛客题目算法连接 题目 golang 实现 package mainimport ("fmt""bufio""os" )func main() {str, _ : bufio.NewReader(os.Stdin).ReadString(\n)if len(str) 0 {return } else {newstr:""strLen:len(str)-1for i:strLen;i>0;i-…...
浏览器没收到返回,后端也没报错,php的json_encode问题bug
今天网站遇到个问题,后端返回异常,但是浏览器状态码200,但是看不到结果。经过排查发现,我们在返回结果的时候使用了json_encode返回给前端,结果里面的字符编码异常,导致json_encode异常,但是php…...
C#中的迭代器和分部类
目录 一、迭代器 1.示例源码 2.生成效果: 二、分部类 1.示例源码 2.生成效果 迭代器在集合类中经常使用,而分部类则提供了一种将一个类分成多个类的方法,这对于有大量代码的类非常实用。 一、迭代器 迭代器是可以返回相同类型的值的有…...
Java项目如何打包成Jar(最简单)
最简单的办法,使用Maven插件(idea自带) 1.选择需要打包的mudule,点击idea右侧的maven插件 2.clean操作 3.选择需要的其他mudule,进行install操作(如果有) 4.再次选择需要打包的module&#…...
快速掌握Pyqt5的三种主窗口
PyQt5是一个强大的跨平台GUI框架,它提供了多种不同类型的主窗口类,以满足不同的应用需求。下面是PyQt5中最常见的几种主窗口类型及其创建方式的简介: 1. QMainWindow QMainWindow是用于创建具有菜单栏、工具栏、状态栏和中心窗口部件&#…...
Linux vim操作教程(vim 基操、vim替换和查找、 vim改变文本颜色、判断和循环语句)
vim 基操 vim 是一个强大的文本编辑器,常用于在终端环境下编辑文件。下面是一些常用的 vim 操作: 打开文件:在终端中输入 vim 文件名 来打开一个文件,如果文件不存在,则会创建一个新文件。 模式切换: 按下 i 进入插入模式,在该模式下可以输入和编辑文本。按下 Esc 键返…...
mac添加Chrome插件的方法
如果是.crx的插件 更改后缀crx为zip 后续步骤同下文.zip文件 如果是.zip的插件 使用终端进行解压 注意不要用解压工具解压,一定要用终端,命令行解压 // 进入到“插件名.zip”文件的目录下,输入下面命令: unzip 插件名.zip -…...
智能优化算法 | Matlab实现金豺优化算法(GJO)(内含完整源码)
文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 智能优化算法 | Matlab实现金豺优化算法(GJO)(内含完整源码) 源码设计 %%clear clc close SearchAgents_no=30; % Number of search agents Max_iteration=1000...
6、信息打点——Web架构篇语言中间件数据库系统源码获取
1、信息搜集搜集哪些东西? 架构信息收集,主要包括:操作系统、开发语言、中间件容器、数据库类型、第三方软件等; web源码信息收集,CMS开源?闭源?售卖?自主研发? 进行web…...
flutter vscode gradle 配置
我这边主要改了如图两个文件,然后把Gradle的问题解决了 参考文章: flutter运行Runt imeException: Timeout of 120000问题-CSDN博客 flutter配置gradle(个人笔记,非教程)_flutter gradle_追寻着星星的方向的博客-CSD…...
tcp和 udp区别
相同点:都是传输层协议 不同点 是否面向连接 tcp:面向连接 三次握手,四次挥手端对端连接全双工通信(允许双端同时收发数据) udp:无连接 无三次握手,四次挥手支持一对一,一对多,多对多 数据传输方式 …...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
