ARM+麒麟大数据环境搭建:Flink

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: ARM+麒麟大数据环境搭建:Flink

第1章概述
1.1编写目的
暂无
1.2业务背景
暂无
第2章组件介绍
2.1组件介绍与架构说明
Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。
Apache Flink是一个分布式系统,需要计算资源才能执行应用程序。Flink与所有常见的集群资源管理器(如Hadoop YARN,Apache Mesos和Kubernetes)集成,但也可以设置为作为独立集群运行。
Flink流处理特性
支持高吞吐、低延迟、高性能的流处理
支持带有事件时间的窗口(Window)操作
支持有状态计算的Exactly-once语义
支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作
支持具有Backpressure功能的持续流模型
支持基于轻量级分布式快照(Snapshot)实现的容错
一个运行时同时支持Batch on Streaming处理和Streaming处理
Flink在JVM内部实现了自己的内存管理
支持迭代计算
支持程序自动优化:避免特定情况下Shuffle、排序等昂贵操作,中间结果有必要进行缓存
2.2逻辑部署拓扑
Flink的部署一般有四种模式,分别是Standalone模式、Yarn Session-cluster模式、Yarn Per-Job-Cluster模式和Kubernetes 部署。
Standalone模式
让Flink不依赖Hadoop与K8s等计算平台,独立运行,此模式主要的问题是不能复用已有的大数据资源,会造成比较大的资源浪费。
Yarn Session-cluster模式:
Session-Cluster 模式需要先启动集群,然后再提交作业,接着会向 yarn 申请一块空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到 yarn 中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交。所有作业共享 Dispatcher 和 ResourceManager;共享资源;适合规模小执行时间短的作业。此模式的主要问题是如果有一个有问题的Flink作业很可能会将找那个Yarn Cluster拖垮导致相关的其他作业也失败。
image.png

Yarn Per-Job-Cluster模式:
一个 Job 会对应一个集群,每提交一个作业会根据自身的情况,都会单独向 yarn 申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。独享 Dispatcher 和 ResourceManager,按需接受资源申请;适合规模大长时间运行的作业。每次提交都会创建一个新的flink集群,任务之间互相独立,互不影响,方便管 理。任务执行完成之后创建的集群也会消失。本项目采用此种方法运行Flink程序。
image.png

Kubernetes 部署:
容器化部署时目前业界很流行的一项技术,基于 Docker 镜像运行能够让用户更 加方便地对应用进行管理和运维。容器管理工具中最为流行的就是 Kubernetes (k8s),而 Flink 也在最近的版本中支持了 k8s 部署模式。此种模式应该是Flink的最佳部署模式,但是由于目前尚未部署K8s环境,此种方法无法实施。
2.3物理部署拓扑
基于node1进行flink部署,之后基于Yarn Per-Job-Cluster模式利用Yarn的资源管理能力向yarn所管理的几点动态分发flink程序并运行。
2.4依赖环境
硬件:Phytium ARM CPU,银河麒麟v10 内核版本4.19.90-17 arm64 桌面版
JDK依赖:JDK 1.8
组件依赖:Hadoop
2.5界面效果
2.5.1Flink启动
image.png

2.5.2Flink日志
image.png

第3章部署步骤
Flink只需要在node1上安装
3.1部署配置
3.1.1安装包上传
将安装包上传至/opt/abd_env_soft
/opt/abd_env_soft/flink-1.14.2-bin-scala_2.11.tgz
3.1.2解压缩并重命名安装目录文件夹
gzip -dv flink-1.14.2-bin-scala_2.11.tgz
tar xvf flink-1.14.2-bin-scala_2.11.tar
mv flink-1.14.2 flink
3.1.3建立程序、日志文件夹与复制样例程序
在node1节点建立如下文件夹,分别用于存储程序与门户调用日志
mkdir /opt/flink_program/
mkdir /opt/flink_log/
cp /opt/abd_env_soft/flink/examples/streaming/SocketWindowWordCount.jar /opt/flink_program/SocketWindowWordCount.jar

3.1.4环境变量配置
vi ~/.bashrc
export JAVA_HOME=/opt/abd_env_soft/jdk
export HADOOP_HOME=/opt/abd_env_soft/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
image.png

3.1.5建立常用命令软连接
为了方便程序运行,需要对常用命令建立软连接
ln -s /opt/abd_env_soft/hadoop/bin/yarn /usr/bin/yarn
ln -s /opt/abd_env_soft/flink/bin/flink /usr/bin/flink
ln -s /opt/abd_env_soft/hadoop/bin/hadoop /usr/bin/hadoop

3.1.6检查hadoop classpath执行结果
直接在命令行输入如下命令
hadoop classpath

image.png

3.2程序启动
3.2.1命令行Yarn(Per-Job-Cluster)启动Flink
启动一个临时监听端口
nc -l 9010
启动Flink程序
export HADOOP_CLASSPATH=hadoop classpath
flink run -m yarn-cluster /opt/abd_env_soft/flink/examples/streaming/SocketWindowWordCount.jar --hostname 192.168.11.110 --port 9010
3.2.2验证Flink
通过yarn查看其执行结果,访问yarn管理控制台
http://192.168.11.115:8088
注意如flink控制台无法显示请将修改生成URL的域名,正式环境需要修改host文件

image.png

image.png
image.png

第4章常见操作
4.1命令行Yarn(Per-Job-Cluster)模式启动Flink
export HADOOP_CLASSPATH=hadoop classpath
flink run -m yarn-cluster /opt/abd_env_soft/flink/examples/streaming/SocketWindowWordCount.jar --hostname 192.168.11.110 --port 9010

image.png

4.2命令行Yarn(Per-Job-Cluster)模式关闭Flink
yarn application -kill 【yarn job id】
image.png

4.5Yarn作业任务检查
通过yarn查看其执行结果,访问yarn管理控制台
http://192.168.11.115:8088
image.png

4.6日志查看命令
Flink运行的日志需要通过Yarn控制台来查看
http://192.168.11.115:8088

image.png

image.png

4.7健康检查方法
Flink的验证必须使其运行起来,可以使用3.2章节的SocketWindowWordCount.jar进行验证与检查

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
20天前
|
分布式计算 监控 大数据
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
55 0
|
20天前
|
分布式计算 监控 大数据
大数据-148 Apache Kudu 从 Flink 下沉数据到 Kudu
大数据-148 Apache Kudu 从 Flink 下沉数据到 Kudu
41 1
|
18天前
|
消息中间件 分布式计算 Kafka
大数据平台的毕业设计02:Spark与实时计算
大数据平台的毕业设计02:Spark与实时计算
|
19天前
|
SQL 运维 大数据
大数据实时计算产品的对比测评
在使用多种Flink实时计算产品后,我发现Flink凭借其流批一体的优势,在实时数据处理领域表现出色。它不仅支持复杂的窗口机制与事件时间处理,还具备高效的数据吞吐能力和精准的状态管理,确保数据处理既快又准。此外,Flink提供了多样化的编程接口和运维工具,简化了开发流程,但在界面友好度上还有提升空间。针对企业级应用,Flink展现了高可用性和安全性,不过价格因素可能影响小型企业的采纳决策。未来可进一步优化文档和自动化调优工具,以提升用户体验。
85 0
|
20天前
|
SQL 大数据 API
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
39 0
|
20天前
|
SQL 消息中间件 分布式计算
大数据-130 - Flink CEP 详解 - CEP开发流程 与 案例实践:恶意登录检测实现
大数据-130 - Flink CEP 详解 - CEP开发流程 与 案例实践:恶意登录检测实现
31 0
|
20天前
|
分布式计算 监控 大数据
大数据-129 - Flink CEP 详解 Complex Event Processing - 复杂事件处理
大数据-129 - Flink CEP 详解 Complex Event Processing - 复杂事件处理
41 0
|
20天前
|
消息中间件 分布式计算 大数据
大数据-128 - Flink 并行度设置 细节详解 全局、作业、算子、Slot
大数据-128 - Flink 并行度设置 细节详解 全局、作业、算子、Slot
70 0
|
19天前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势
|
20天前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
43 3