Flink Sql 读写操作 Kudu 使用bahir 编译 Flink Kudu Connector

空0026 26。 阅读详情

前言:

近几年, KUDU 在大数据平台的应用越来越广泛,在 阿里、小米、网易 等公司的大数据架构中,KUDU 都有着不可替代的地位。作者在2016年开始了解KUDU,2017年正式在生产环境中使用,即使现如今ClickHouse、Doris、Hudi等优秀开源产品的出现,在技术架构选型的时候,实时数仓的部分场景我个人还是青睐使用:Kudu + Impala + Parquet 。

比较遗憾的是,到现在为止 Flink发布版本中还没有支持SQL读写Kudu,还好有第三方bahir可以编译 Flink Kudu Connector

后面提供已经编译好的包,恰好是相同版本的可以直接用了。

Bahir官站:

https://bahir.apache.org/docs/flink/current/flink-streaming-kudu/

一,环境准备

建议在Liunx环境下编译,有依赖包没找到windos版本:kudu-binary-1.10.0-linux-x86_64.jar

1.1 编译需要

git

jdk 1.8 (jdk自行安装)

maven 3

1.1.1 安装git

yum install git

 1.1.2  Liunx安装Maven

1. Maven官网下载

 2.  解压

tar -zxvf apache-maven-3.8.6-bin.tar.gz

3. 配置maven仓库,设置阿里镜像仓库

cd apache-maven-3.8.6

vim conf/settings.xml

    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>

 设置仓库地址:/opt/mav

 4. 配置环境变量

vim /etc/profile

export MAVEN_HOME=/root/apache-maven-3.8.6
export PATH=$MAVEN_HOME/bin:$PATH

 5. 加载验证

source /etc/profile

mvn -version

 

1.2 软件版本 (官方目前支持到Flink 1.14.2)

具体根据自己版本修改后面代码pom

CDH 6.3.2

KUDU  1.10.0-cdh6.3.2

Flink 1.13.2

二,代码准备

1. 下载源码

https://github.com/apache/bahir-flink.git

2. 修改pom.xml

1 . cd bahir-flink-master

 2 . 修改父pom

vim pom.xml 

修改成自己的flink版本,scala版本注意修改,module只留flink-connector-kudu即可

        <!-- Flink version -->
        <flink.version>1.13.2</flink.version>
        <scala.binary.version>2.11</scala.binary.version>
        <scala.version>2.11.8</scala.version>

cdh的kudu 包下载不下来可以在父pom加一个CDH镜像 

进入父Pom,在repositories添加CDH镜像

        <repository>
             <id>cloudera</id>
             <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
        </repository>

3. 修改flink-connector-kudu 子模块的 pom

添加guava依赖:

<dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-shaded-guava</artifactId>
        <version>30.1.1-jre-14.0</version>
</dependency>

修改kudu 版本:

<properties>
    <kudu.version>1.10.0-cdh6.3.2</kudu.version>
</properties>

修改 kudu-binary 版本:

      <dependency>
        <groupId>org.apache.kudu</groupId>
        <artifactId>kudu-binary</artifactId>
        <version>1.10.0</version>
        <classifier>${os.detected.classifier}</classifier>
        <scope>test</scope>
      </dependency>

 三,执行编译

因为网络原因,中途可能下包会失败,重新执行几次

进入主目录:

/root/bahir-flink-master

执行编译:

mvn clean install -T 10 -DskipTests -Drat.skip=true

 

四,集群测试

1.将编译好的包放到 $FLINK_HOME/lib (每台机器)需要重启集群

cp flink-connector-kudu_2.11-1.2-SNAPSHOT.jar  $FLINK_HOME/lib

2.如遇如下报错,将flink-shaded-guava-30.1.1-jre-14.0.jar包放入到  $FLINK_HOME/lib下 
java.lang.ClassNotFoundException: org.apache.flink.shaded.guava30.com.google.common.collect.Lists

 免费下载链接:Flinksql依赖kudu包-flink文档类资源-优快云下载

[INFO] Submitting SQL update statement to the cluster...
[ERROR] Could not execute SQL statement. Reason:
java.lang.ClassNotFoundException: org.apache.flink.shaded.guava30.com.google.common.collect.Lists

3. 如遇到  java.lang.ClassNotFoundException:org.apache.kudu.client.CreateTableOptions

将kudu clinet 相关包拷贝到 $FLINK_HOME/lib下 

cp /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/kudu/kudu-client*  $FLINK_HOME/lib/

[ERROR] Could not execute SQL statement. Reason:
java.lang.ClassNotFoundException: org.apache.kudu.client.CreateTableOptions

4. 如果遇到如下链接拒绝异常,看我上篇文章:优快云

[INFO] Submitting SQL update statement to the cluster...
[ERROR] Could not execute SQL statement. Reason:
java.net.ConnectException: 拒绝连接

5,问题解决好后,启动sql-client

Flink SQL> CREATE TABLE kudu_test (
>  id                 string
> ,name            string
> ) WITH (
>   'connector.type' = 'kudu',
>   'kudu.masters' = 'datacenter4:7051',
>   'kudu.table' = 'impala::oms.ods_test',
>   'kudu.hash-columns' = 'id',
>   'kudu.primary-key-columns' = 'id'
> );
[INFO] Execute statement succeed.

执行插入

Flink SQL> insert into kudu_test select    
> '1' as id ,              
> 'a' as name   ;
[INFO] Submitting SQL update statement to the cluster...
[INFO] SQL update statement has been successfully submitted to the cluster:
Job ID: 23fd7ae0c26ba43d87308f0599c6db6b

查看数据:数据1,a插入成功

 

【Flink】 FlinkSQL客户端报 Could not execute SQL statement. Reason:java.net.ConnectException: 拒绝连接 [ERROR] Could not execute SQL statement. Reason: java.net.ConnectException: 拒绝连接 阅读详情

相关推荐

CDH集成Flink之sql client使用

CDH集成Flink之后,sql client 使用过程中出现拒绝连接的问题处理。

csdntestuser1的博客 1865

Flink CM CDH sql-client java.net.ConnectException: 拒绝连接

cm cdh 集成 flink 启动sql clinet 报拒绝链接,但是yarn上提交任务正常,需要启动本地集群,然后再启动sql-client

wrj_java的博客 2761

flink-connector-kudu:基于Apache-bahir-kudu-connector的flink-connector-kudu,支持Flink1.11.x DynamicTableSourceSink,支持范围分区等

Kudu连接器 基于Apache-Bahir-Kudu连接器改造而来的满足公司内部使用的Kudu连接器,支持特性范围分区,定义哈希分桶数,支持Flink1.11.x动态数据源等,改造后已贡献部分功能给社区。 使用姿势 clone代码后,改造pom项目坐标后上传公司私服使用 Kudu目录使用 创建目录 StreamExecutionEnvironment env = StreamExecutionEnvironment . getExecutionEnvironment(); catalog = new KuduCatalog ( " cdh01:7051,cdh02:7051,cdh03:7051 " ); tableEnv = KuduTableTestUtils . createTableEnvWithBlinkPlannerStreamingMode(env); tableEnv .

flink cdc同步Oracle数据库资料到Doris问题集锦

flink 1.14 包 org.apache.flink.shaded.guava 版本冲突

bababuzaijia的博客 2341

「点燃我,温暖你」用Python制作一个动态爱心效果

最近「点燃我,温暖你」这部剧非常火,讲述的是程序员的爱情故事。其中陈飞宇饰演的男主李峋,在剧中用程序做出的爱心跳动效果,非常炫。

Modeler_xiaoyu的博客 1万+

山东大学FPGA课程实验一 加法器设计

电子设计自动化与FPGA设计,实验一 加法器设计

2503_91283667的博客 869

低功耗小型化稳频激光系统:基于MTS与共腔方案的架构设计与实现

稳频激光系统在精密测量、量子传感等领域至关重要,但传统PDH方案功耗高、体积大,难以满足现场应用需求。调制转移光谱(MTS)技术利用原子跃迁谱线作为频率参考,无需超稳腔,从原理上降低了系统复杂度和功耗。通过选用DFB激光器、微型铷气室和低功耗微控制器,结合温控与解调算法优化,可实现秒级积分时间下10^-10量级的频率稳定度,整机功耗低于2瓦。该系统适用于便携式光谱仪、现场气体检测等场景,为稳频激光的嵌入式集成提供了可行路径。

weixin_34268753的博客 360

保姆级教程:在Linux上用IGH EtherCAT主站搞定从站时钟同步(附sync_datagram报文详解)

本文详细介绍了在Linux系统上使用IGH EtherCAT主站实现从站时钟同步的保姆级教程,重点解析了sync_datagram报文的结构和工作原理。通过实战案例和代码示例,帮助开发者掌握微秒级同步精度的实现方法,适用于工业自动化领域的高精度设备协同控制。

weixin_30733003的博客 260

ClassNotFoundException: org.apache.flink.shaded.guava18.com.google.common.collect.Lists

ClassNotFoundException: org.apache.flink.shaded.guava18.com.google.common.collect.Lists

konstantin的博客 5212

双目摄像头全景解析:从几何光学到深度智能

双目视觉系统基于仿生学原理,通过水平排列的双摄像头模拟人眼视差机制实现三维感知。其核心是通过标定、校正、匹配等算法流程,将视差转换为深度信息,最终生成三维点云。该系统在自动驾驶、机器人导航、工业检测等领域有广泛应用,但面临弱纹理、重复图案等挑战。未来发展趋势包括与事件相机、深度学习等技术的融合,进一步提升精度和动态性能。

reset2021的博客 120

petalinux2022.2启动文件编译配置

petalinux2021之前的版本里,导入目录components/yocto/下的“environment-setup-aarch64-xilinx-linux” 和 “layers/core/oe-init-build-env”的环境,能使用Yocto的devtool工具。(加入下面内容,先petalinux-build下载完成后才能有源码)制作 BOOT.BIN 启动文件:petalinux-package --boot --fsbl --fpga --u-boot --force。

wangjie36的博客 1389

编译flink-cdc-connectors

在java中使用flink-cdc-connectors报错,“org.apache.flink.shaded.guava18.com.google.common.collect” 或是 “org.apache.flink.shaded.guava30.com.google.common.collect”。于是为了与使用的flink版本对应,下载源码编译,但是重新打包的过程中遇到了一些问题,记录如下:1.格式校验错误,spotless,pom文件中引入如下配置 然后在maven中找到spotless:a

茶故 3261

(第14天)Veritas NetBackup(NBU) 配合 RMAN 脚本备份 Oracle 数据库

NBU(Veritas Netbackup)是企业中比较常用的备份软件,通常用于备份企业使用中的系统,数据库,文件等等,通常是搭配 Oracle RMAN 来进行备份 Oracle 数据库。

LuciferLiu_DBA 1642

Flink Table/Sql自定义Kudu Sink实战(其它Sink可参考)

DynamicTableSourceFactory或DynamicTableSinkFactory将CatalogTable的metadata,转换成DynamicTableSource或DynamicTableSink的实例数据。:Flink Catalog已有的Flink Table,或在Flink Catalog进行Flink Table的create sql声明。DynamicTableFactory主要验证with子句的各个选项,并解析with子句的各个选项值。具体可以参考我的这篇博客。

Bulut0907 2146

Windows Server 2016远程桌面服务配置和授权激活

Server 2016默认远程桌面连接数是2个用户,如果多余两个用户进行远程桌面连接时,系统就会提示超过连接数,可以通过添加远程桌面授权解决:1、添加远程桌面授权服务第一步:服务器管理 - 添加角色和功能打开添加角色和功能向导窗口,选择基于角色或给予功能安装:第二步:添加远程桌面会话主机和远程桌面授权功能:以上配置完成后即可使用多于2用户同时登陆,但使用期限为120天,再次登陆会有如下提示:2、添...

mahailiang的专栏 6万+

ISP 芯片作为独立设备节点的驱动实现要点:多平台结构差异与工程部署策略解析

随着 ISP(Image Signal Processor)从 SoC 集成形态向独立芯片模块演进,在多摄系统、高动态场景、AI 图像前处理等需求下,ISP 作为单独设备节点进行驱动设计已成为主流趋势。尤其在多 SoC 平台(如高通、联发科、展锐、Rockchip)中,不同厂商对 ISP 的抽象方式与驱动接口处理存在显著差异。本文以实际工程为基础,从 Linux 内核下的设备注册流程、media\_entity 配置、VideoDevice 分配、数据 DMA 管理、与 sensor 的流同步控制等关键点展

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1462

Flink-Connector-Kudu 项目使用教程

Flink-Connector-Kudu 项目使用教程 1. 项目的目录结构及介绍 Flink-Connector-Kudu 项目的目录结构如下: flink-connector-kudu/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── org/ │ │ │ │ ├── apache/ │ │ │ │ ...

gitblog_00988的博客 553

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Flink+Flink CDC版本升级的依赖问题总结

flink 1.16 + flink-connector-mysql-cdc2.3 的依赖冲突问题总结。

不才伟才的博客 6452

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

轻松通关Flink第12讲:Flink 常用的 Source 和 Connector

在前面的第 04 课时“Flink 常用的 DataSet 和 DataStream API”中提到过几种 Flink 已经实现的新建 DataStream 方法。我们可以通过实现 Flink 的SourceFunction 或者 ParallelSourceFunction 来实现单个或者多个并行度的 Source。/*** 重写run方法产生一个源源不断的数据发送源//每秒产生一条数据 Thread.sleep( 1000 );

sucaiwa的博客 1039

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

flinksql 写入kudu出现问题的排查

1、线上任务写入kudu报错,错误代码如下: 2022-01-11 17:22:00,772 ERROR org.apache.flink.kudu.connector.internal.failure.DefaultKuduFailureHandler [] - Error while sending value .Row error for primary key="10043603BS2022010646ACTIVEappSP\x00\x002022010646\x00\x0020220106

wppwpp1的专栏 1645

Flink+hudi遇到的坑(error原因及处理,随时补充)

1. java.lang.LinkageError: org/apache/hudi/org/apache/parquet/column/ColumnDescriptor 原因:主键问题 处理方式:检查建表语句主键,参考官网主键设置。

qq_40788398的博客 6649

推荐使用:Apache Flink Kudu Connector - 流处理与实时数据仓库的强强联合!

推荐使用:Apache Flink Kudu Connector - 流处理与实时数据仓库的强强联合! 在这个大数据时代,高效的流处理和实时数据分析已成为业务成功的关键因素。为此,我们向您强烈推荐一个强大的开源项目——Apache Flink Kudu Connector。这个项目将开源流处理框架Apache Flink与实时数据仓库Kudu完美结合,为您的数据应用带来前所未有的效能。 项目介绍 ...

gitblog_00074的博客 440

【亲测免费】 Flink-Kudu 连接器使用教程

Flink-Kudu 连接器使用教程 1. 项目介绍 Flink-Kudu 连接器 是一个用于 Apache Flink 和 Apache Kudu 之间数据交互的组件。它提供了源(KuduInputFormat)、接收器/输出(KuduSink 和 KuduOutputFormat)以及动态表源(KuduTableSource)、更新插入表接收器(KuduTableSink)和目录(KuduCa...

gitblog_00834的博客 540

Flink随笔(二) SqlClient的配置和使用

Flink SQL Client Flink’s Table & SQL API makes it possible to work with queries written in the SQL language, but these queries need to be embedded within a table program that is written in either Java or Scala. Moreover, these programs need to be .

xiaoliu_1的博客 4524

flink读clickhouse,自定义sink和source

flink分批读clickhouse数据,处理后再存clickhouse。存量数据:按天分批取数据处理;增量数据:每隔一段时间拉取一次数据。

jianm_liu的博客 1956
上一篇: Flink CM CDH sql-client java.net.ConnectException: 拒绝连接
regin@wrj
博客等级 码龄9年 1粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值