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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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进行验证与检查

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
15天前
|
监控 大数据 Java
使用Apache Flink进行大数据实时流处理
Apache Flink是开源流处理框架,擅长低延迟、高吞吐量实时数据流处理。本文深入解析Flink的核心概念、架构(包括客户端、作业管理器、任务管理器和数据源/接收器)和事件时间、窗口、状态管理等特性。通过实战代码展示Flink在词频统计中的应用,讨论其实战挑战与优化。Flink作为大数据处理的关键组件,将持续影响实时处理领域。
116 5
|
1天前
|
大数据 Java API
大数据计算引擎之Flink Flink CEP复杂事件编程
大数据计算引擎之Flink Flink CEP复杂事件编程
|
3天前
|
消息中间件 分布式计算 Kafka
深度分析:Apache Flink及其在大数据处理中的应用
Apache Flink是低延迟、高吞吐量的流处理框架,以其状态管理和事件时间处理能力脱颖而出。与Apache Spark Streaming相比,Flink在实时性上更强,但Spark生态系统更丰富。Apache Storm在低延迟上有优势,而Kafka Streams适合轻量级流处理。选型考虑延迟、状态管理、生态系统和运维成本。Flink适用于实时数据分析、复杂事件处理等场景,使用时注意资源配置、状态管理和窗口操作的优化。
|
11天前
|
SQL Java 流计算
实时计算 Flink版操作报错合集之遇到报错:Caused by: com.aliyun.odps.tunnel.TunnelException:,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1月前
|
分布式计算 调度 MaxCompute
实时计算 Flink版产品使用合集之maxcompute更新写入如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
分布式计算 Hadoop Java
大数据实战平台环境搭建(上)
大数据实战平台环境搭建(上)
27 1
|
1月前
|
SQL 大数据 数据处理
[AIGC大数据基础] Flink: 大数据流处理的未来
[AIGC大数据基础] Flink: 大数据流处理的未来
|
1月前
|
分布式计算 Hadoop Java
大数据实战平台环境搭建(下)
大数据实战平台环境搭建(下)
30 0
|
1月前
|
SQL 并行计算 大数据
【大数据技术攻关专题】「Apache-Flink零基础入门」手把手+零基础带你玩转大数据流式处理引擎Flink(基础加强+运行原理)
关于Flink服务的搭建与部署,由于其涉及诸多实战操作而理论部分相对较少,小编打算采用一个独立的版本和环境来进行详尽的实战讲解。考虑到文字描述可能无法充分展现操作的细节和流程,我们决定以视频的形式进行分析和介绍。因此,在本文中,我们将暂时不涉及具体的搭建和部署步骤。
515 3
【大数据技术攻关专题】「Apache-Flink零基础入门」手把手+零基础带你玩转大数据流式处理引擎Flink(基础加强+运行原理)
|
1月前
|
Java Linux 流计算
【极数系列】Flink环境搭建&Docker版本(04)
【极数系列】Flink环境搭建&Docker版本(04)
137 3