Flink on Yarn编译的Parcels包到CDH集群实录

简介: 学习一个东西,个人认为最好的方式是:官网+源码+实践Flink官网:http://flink.apache.org

环境需求

组件名称

版本

maven

3.6.3

java

1.8

flink源代码

1.12.4

flink-shaded源代码

1.12

hadoop

3.0.0-cdh6.2.0

scala

2.11.8


环境变量


JDK的安装,参考之前的内容即可,此处主要对Maven进行安装:


下载并解压maven的安装包,然后修改环境变量即可:


vim /etc/profile

export M3_HOME=.../apache-maven-3.6.3  # 配置自己的maven路径

export PATH=$M3_HOME/bin:$M3_HOME:$PATH


source /etc/profile


查看maven安装情况:


mvn --version


Flink源代码下载


从Flink官网,下载源码,选择固定版本。


ae14c1c577de4e268bd5889a78d8284a1506.png


这里解释一下为什么选择Flink-1.12.4版本:


1个是因为从1.10版本之后,添加了很多新的功能,且对FlinkSQL进行了很多优化,而1.12作为今年的一个大版本,其中对各个底层做了很多优化:特别是对Hadoop版本的绑定解除了,这就非常奈斯。而且还有很多的依赖进行了移除,这个基本都是要进行升级的,所以直接选择高版本Flink进行安装是最省事的。


其中,对flink-shaded选择12.0版本即可:


60b1a4b7c9034bc1b4fc3fda0835e1f01506.png


编译过程


1、将flink-shaded解压,并放在flink-1.12.4目录,然后进入flink-shaded-12,修改其中的pom.xml,主要添加CDH的仓库:


<!--添加CDH的仓库-->

   <repositories>

       <repository>

       <id>cloudera</id>

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

       </repository>

   </repositories>


2、编译flink-shaded:


mvn clean install -DskipTests -Dhadoop.version=3.0.0-cdh6.2.0


3、为flink-1.12.4的pom.xml也添加cloudera的仓库;(类似第1步就不放图了);


但是注意,还需要在里面添加haddop和hive的版本信息:


<hadoop.version>3.0.0</hadoop.version>

<hive.version>2.1.1</hive.version>

<hivemetastore.hadoop.version>3.0.0</hivemetastore.hadoop.version>


4、编译flink-1.12.4:


mvn -T2C clean install -DskipTests -Dfast -Pinclude-hadoop -Pvendor-repos -Dhadoop.version=3.0.0-cdh6.2.0 -Dscala-2.11


这一步,可能要进行多次,下载的依赖包也会很多,所以持续时间也比较长。


5、然后将编译好的文件进行打包:


编译好的文件在flink-1.12.4/flink-dist/target/flink-1.12.4-bin/目录下:


tar -zcf flink-1.12.4-bin-scala_2.11.tgz flink-1.12.4/


至此,依赖Scala-2.11和Cloudera的jar包已经编译完成。


制作parcel文件


1、首先,需要确保安装了git(因为要从github下载制作工具);


2、在自己想放的位置,克隆parcel工具目录:


git clone https://github.com/pkeropen/flink-parcel.git


3、然后进入到flink-parcel目录,此时build.sh的权限是-rw-r–r–,所以需要修改其中build.sh的权限:


chmod 755 ./build.sh


4、修改了权限之后,如果是在自己mac则需要增加下面这一步,如果是在阿里云服务器shell下,可以省略:


修改build.sh,删除里面的指定用户和指定用户组,--owner和--group:


fd3e86e03b424befb173572675222c211506.png


5、修改flink-parcel.properties:


#FLINK 下载地址  直接指定自己的本地位置

FLINK_URL=/Users/hiwes/data/flink/flink-parcel/flink-1.12.4-bin-scala_2.11.tgz


#flink版本号

FLINK_VERSION=1.12.4


#扩展版本号

EXTENS_VERSION=BIN-SCALA_2.11


#操作系统版本,以centos为例

OS_VERSION=7


#CDH 小版本

CDH_MIN_FULL=6.1

CDH_MAX_FULL=6.3


#CDH大版本

CDH_MIN=5

CDH_MAX=6


6、将【编译过程】中编译的flink jar包,放在上一步中指定的位置,自行指定。


7、编译parcel:


./build.sh parcel


这个时候,会报错找不到java_home,不要慌,此时需要在下载的工具下的cm_ext目录中,分别修改cm-schema和validator的pom.xml,添加以下内容:


<javadocExecutable>/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/javadoc</javadocExecutable>


如图所示:


7a8128e3a25f4b0e81d49b7042bc0d471506.png


其中根据自己的JDK位置进行修改,注意指向javadoc的位置。


8、生成csd文件:


./build.sh csd_on_yarn  # 主要使用Flink on yarn,所以这才是需要的操作


./build.sh csd_standalone  # 这是生成standalone包的,所以可以省略


9、此时的生成结果如下:


4f65a35ad9f746c2b51990959eedecc51506.png


10、将这两部分内容,上传到服务器(如果已经是在集群节点上,则直接进行scp传输即可)。


将FLINK_ON_YARN-1.12.4.jar放在CDH目录下:/opt/cloudera/csd


将另外三个文件,放在CDH目录下:/opt/cloudera/parcel-repo


11、此时,重启cm服务:


systemctl restart cloudera-scm-server


Flink下载分发


1、通过下图进入parcel位置:


67afff60ef234775b4b74d9cd1fc0c581506.png


2、对Flink进行分发和激活,最终达到下图要求:


c4589f26328c442b897e8a24ad5650531506.png


部署Flink-yarn服务


1、添加服务:


1349fdeb88914388ada174339a5e8f7a1506.png


2、选择节点:


81924df9e5614e41bd750e96508bfdaa1506.png


3、进行初步配置:


25f11097aca1426c8ec988524b2e6de01506.png


注意其中需要去掉kerberos的设置:


6ed55272bb984e558201cd4e5cb140641506.png


4、继续执行,此时会报错,因为找不到Hadoop和HBase的依赖,此时从配置中添加以下内容:


a6eeba45af9b4c828b81b8ef53f438b71506.png


5、此时重新启动,则完成服务添加。


其他的配置


1、此时在服务器上面,是找不到任何flink命令的,所以需在环境变量中进行配置,这个点可以说是五星级的重要,现在所有的技术贴中都没有提到这一点,原本在21年1月1号之前,Cloudera官网提供parcels包下载之前是可以的,但是现在需要自己编译之后,这一步没办法省略,所有节点都加。


27d126c82bbf4f88843777b63d616c7c1506.png


测试


flink run -m yarn-cluster ./examples/batch/WordCount.jar


生成结果如下:


a43b04a53e4e47ce9ddd82701c9cd5c71506.png


至此,所有安装和初步测试结束。

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
目录
相关文章
|
消息中间件 资源调度 关系型数据库
如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理
本文介绍了如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理。主要内容包括安装Debezium、配置Kafka Connect、创建Flink任务以及启动任务的具体步骤,为构建实时数据管道提供了详细指导。
794 9
|
资源调度 分布式计算 大数据
大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
554 0
|
资源调度 Oracle Java
实时计算 Flink版产品使用问题之在YARN集群上运行时,如何查看每个并行度的详细处理数据情况
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 资源调度 数据处理
实时计算 Flink版产品使用问题之-s参数在yarn-session.sh命令中是否有效
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8月前
|
存储 分布式计算 数据处理
「48小时极速反馈」阿里云实时计算Flink广招天下英雄
阿里云实时计算Flink团队,全球领先的流计算引擎缔造者,支撑双11万亿级数据处理,推动Apache Flink技术发展。现招募Flink执行引擎、存储引擎、数据通道、平台管控及产品经理人才,地点覆盖北京、杭州、上海。技术深度参与开源核心,打造企业级实时计算解决方案,助力全球企业实现毫秒洞察。
727 0
「48小时极速反馈」阿里云实时计算Flink广招天下英雄
|
消息中间件 关系型数据库 MySQL
Flink CDC 在阿里云实时计算Flink版的云上实践
本文整理自阿里云高级开发工程师阮航在Flink Forward Asia 2024的分享,重点介绍了Flink CDC与实时计算Flink的集成、CDC YAML的核心功能及应用场景。主要内容包括:Flink CDC的发展及其在流批数据处理中的作用;CDC YAML支持的同步链路、Transform和Route功能、丰富的监控指标;典型应用场景如整库同步、Binlog原始数据同步、分库分表同步等;并通过两个Demo展示了MySQL整库同步到Paimon和Binlog同步到Kafka的过程。最后,介绍了未来规划,如脏数据处理、数据限流及扩展数据源支持。
897 0
Flink CDC 在阿里云实时计算Flink版的云上实践
|
存储 关系型数据库 BI
实时计算UniFlow:Flink+Paimon构建流批一体实时湖仓
实时计算架构中,传统湖仓架构在数据流量管控和应用场景支持上表现良好,但在实际运营中常忽略细节,导致新问题。为解决这些问题,提出了流批一体的实时计算湖仓架构——UniFlow。该架构通过统一的流批计算引擎、存储格式(如Paimon)和Flink CDC工具,简化开发流程,降低成本,并确保数据一致性和实时性。UniFlow还引入了Flink Materialized Table,实现了声明式ETL,优化了调度和执行模式,使用户能灵活调整新鲜度与成本。最终,UniFlow不仅提高了开发和运维效率,还提供了更实时的数据支持,满足业务决策需求。
zdl
|
消息中间件 运维 大数据
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
706 56
|
SQL 运维 数据可视化
阿里云实时计算Flink版产品体验测评
阿里云实时计算Flink基于Apache Flink构建,提供一站式实时大数据分析平台,支持端到端亚秒级实时数据分析,适用于实时大屏、实时报表、实时ETL和风控监测等场景,具备高性价比、开发效率、运维管理和企业安全等优势。