Flink编程——基础环境搭建

基础环境搭建

文章目录

    • 基础环境搭建
      • 准备环境搭建
      • 源码环境搭建
        • 克隆代码
        • 编译
        • 导入IDEA
      • 集群环境搭建
        • 本地模式安装
          • 步骤 1:下载
          • 步骤 2:启动集群
          • 步骤 3:提交作业(Job)
          • 步骤 4:停止集群
    • 总结

准备环境搭建

我们先把电脑的准备环境给安装好,这样后面才能顺利的学习和时间

因为后面可能用到的有:Kafka、MySQL、ElasticSearch 等,另外像 Flink 编写程序还需要依赖Java,还有就是我们项目是用 Maven来管理依赖的,所以需要把这些环境搭建起来,如果可以的话也可以把Hadoop 的环境搭建起来,后面学习数据湖的时候要用。

源码环境搭建

源码环境是我们理解和阅读源代码的最有用的工具了,搭建好源码环境后我们可以对源代码进行调试和二次开发

克隆代码

Flink GitHub 仓库地址:https://github.com/apache/flink 但是GitHub 经常由于网络的一些问题不稳定,我们可以使用Gitee

git clone https://gitee.com/apache/flink.git

image-20240119134524690

我们可以切到对应的目录下,查看一下分支情况

编译
mvn clean install -DskipTests -Dfast -Pskip-webui-build -T 1C
  • -DskipTests:跳过测试代码
  • -Dfast:跳过 QA 的插件和 JavaDocs 的生成
  • -Pskip-webui-build:跳过 WebUI 编译

fastskip-webui-build 这两个 Maven profiles 对整体构建时间影响比较大,特别是在存储设备比较慢的机器上,因为对应的任务会读写很多小文件。

注意: maven 的 settings.xml 文件的 mirror 添加下面这个

<mirror><id>nexus-aliyun</id><mirrorOf>*,!jeecg,!jeecg-snapshots,!mapr-releases</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror><mirror><id>mapr-public</id><mirrorOf>mapr-releases</mirrorOf><name>mapr-releases</name><url>https://maven.aliyun.com/repository/mapr-public</url>
</mirror>

可以加速依赖包的下载

image-20240119144520827

导入IDEA

IDEA 作为目前我们最长使用的开发工具,我们可以使用IDEA 阅读和理解Flink 的源代码,导入项目之前我们先配置一下Maven,不然我们它默认的目录是在用户目录下,这样就会导致我们在编译时候下载的的依赖还有再下载一遍,所以我们这里配置一下我们的Maven

image-20240119145347315

接下来开始导入,步骤参考如下

  1. 启动 IntelliJ IDEA 并选择 New → Project from Existing Sources。
  2. 选择已克隆的 Flink 存储库的根文件夹。
  3. 选择 “Import project from external model”,然后选择 “Maven”。
  4. 保留默认选项,然后依次单击 “Next”,直到到达 SDK 部分。
  5. 如果未列出 SDK,请使用左上角的 “+” 号创建一个。选择 “JDK”,选择 JDK 主目录,然后单击 “OK”。选择最合适的 JDK 版本。注意:一个好的经验法则是选择与活动 Maven 配置文件匹配的 JDK 版本。
  6. 单击 “Next” 继续,直到完成导入。
  7. 右键单击已导入的 Flink 项目 → Maven → Generate Sources and Update Folders。请注意:这会将 Flink 库安装在本地 Maven 存储库中,默认情况下位于 “/home/$USER/.m2/repository/org/apache/flink/"。另外 mvn clean package -DskipTests 也可以创建 IDE 运行所需的文件,但无需安装库。
  8. 编译项目(Build → Make Project)

我们选择我们的下载目录打开即可

或者这里你可以选择导入项目,然后根据提示一步步完成设置

image-20240119145704639

选择maven

image-20240119145935833

最后成功导入,这下我们可以在IDEA 中进行堆代码的调试和开发了

image-20240122135244696

集群环境搭建

Apache Flink 可以以多种方式在不同的环境中部署,抛开这种多样性而言,Flink 集群的基本构建方式和操作原则仍然是相同的。

一个 Flink 集群总是包含一个 JobManager以及一个或多个 TaskManager。JobManager 负责处理 Job提交、 Job 监控以及资源管理。Flink TaskManager 运行 worker 进程, 负责实际任务 Tasks的执行,而这些任务共同组成了一个 Flink Job。

本地模式安装

请按照以下几个步骤下载最新的稳定版本开始使用。

步骤 1:下载

为了运行Flink,需提前安装好 Java 11 或者 Java8。你可以通过以下命令来检查 Java 是否已经安装正确。

java -version

下载 release 1.18.0 并解压。

$ tar -xzf flink-1.18.0-bin-scala_2.12.tgz
$ cd flink-1.18.0-bin-scala_2.12
步骤 2:启动集群

Flink 附带了一个 bash 脚本,可以用于启动本地集群。

$ ./bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host.
Starting taskexecutor daemon on host.

因为我这里在worker 文件里配置在本地启动了三个TaskManager 进程

image-20240119105818610

image-20240119110021955

步骤 3:提交作业(Job)

Flink 的 Releases 附带了许多的示例作业。你可以任意选择一个,快速部署到已运行的集群上。

$ ./bin/flink run examples/streaming/WordCount.jar
$ tail log/flink-*-taskexecutor-*.out(nymph,1)(in,3)(thy,1)(orisons,1)(be,4)(all,2)(my,1)(sins,1)(remember,1)(d,4)

另外,你可以通过 Flink 的 Web UI 来监视集群的状态和正在运行的作业,可以看到作业已经运行结束了

image-20240119110049041

上面的日志输出,你也可以在Flink 的 Web UI 上看,但是因为我们这里启动了三个TaskManager,但是我们的任务并行度是1 ,也就是只有某一个的TaskManager 日志可以看到

image-20240119110518038

下面就是 Web UI 上的日志

image-20240119110559594

步骤 4:停止集群

完成后,你可以快速停止集群和所有正在运行的组件。

$ ./bin/stop-cluster.sh

image-20240119105723464

总结

到这里我们的环境搭建就完成了主要包括

  1. 准备环境搭建
  2. 源码环境搭建
  3. 集群环境搭建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/639502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我们需要练习关爱自己,让自己松弛下来,而练习的方式就是慈心,祝福自己也祝福他人

非常正确&#xff01;关爱自己是维持身心健康的关键之一。通过慈心和祝福的方式&#xff0c;我们可以培养更积极、更宽容的心态&#xff0c;提升生活质量。以下是一些建议&#xff0c;帮助你在日常生活中练习关爱自己&#xff1a; 自我体谅&#xff1a; 对待自己要像对待朋友一…

国内SAP实施公司大盘点

随着企业数字化转型的加速推进&#xff0c;SAP作为全球有名的企业软件解决方案提供商&#xff0c;受到了越来越多企业的青睐。然而&#xff0c;要充分发挥SAP软件的潜力&#xff0c;企业需要依赖专业的SAP实施公司来提供技术支持和咨询服务。在国内&#xff0c;有许多优秀的SAP…

Spring ApplicationContext

ApplicationContext 在 Spring 中代表着一个高级的 IoC 容器&#xff0c;负责实例化、配置和组装对象。ApplicationContext 接口扩展自 BeanFactory 接口&#xff0c;添加了更多的企业级功能&#xff0c;比如更容易的国际化、事件传播、资源加载等。 ApplicationContext 接口关…

web3d-three.js场景设计器-天空包围盒-TWEEN.js

THREE.JS 实现场景天空包围盒&#xff0c;为了让场景背景更具体&#xff0c;而不是呆板的纯色&#xff0c;可以给厂家添加围绕的包围盒。 这里使用球体来实现&#xff0c;球体中央则是场景给球体添加天空的渐变色加入场景 代码如下 function createSky( hemiLight) { const …

学习笔记——克里金插值

有一篇大神的文章写得非常的具体&#xff0c; https://xg1990.com/blog/archives/222 下面写下一些学习笔记&#xff1a; 1、关于克里金插值的基本原理 克里金插值来源于地理学&#xff0c;它的前提是地理学第一定律&#xff1a;所有事物都与其他事务相关&#xff0c;但是近…

应用层—HTTP详解(抓包工具、报文格式、构造http等……)

文章目录 HTTP1. 抓包工具的使用1.1 配置信息1.2 观察数据 2. 分析 https 抓包结果3. HTTP请求详解3.1 认识 URL3.1.1 URL 基本格式3.1.2 查询字符串 (query string)3.1.3 关于 URL Encode 3.2 认识 http 方法3.2.1 [经典问题] Get 和 Post 主要的区别是什么&#xff1f;&#…

Java多线程并发篇----第二十九篇

系列文章目录 文章目录 系列文章目录前言一、什么是不可变对象,它对写并发应用有什么帮助二、Java 中用到的线程调度算法是什么?三、什么是线程组,为什么在 Java 中不推荐使用?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点…

美易官方《美国股市在全球金融市场中的地位举足轻重》

美国股市在全球金融市场中的地位举足轻重&#xff0c;吸引了众多顶尖投资高手和机构竞相角逐。作为全球最大的股票市场之一&#xff0c;美国股市以其独特的魅力和优势&#xff0c;成为了全球投资者瞩目的焦点。 首先&#xff0c;美国股市的规模巨大&#xff0c;流动性充裕&…

第十五届蓝桥杯单片机组——超声波测距

文章目录 一、超声波测距原理二、利用定时器实现测距2.1 结合定时器实现过程2.2 伪代码 三、代码示例 一、超声波测距原理 超声波测距是一种常用的测量距离的方法&#xff0c;凭借其非接触性、准确度高以及对环境因素影响小的优点&#xff0c;广泛应用于各类机器人、自动驾驶车…

C++11手撕线程池 call_once 单例模式 Singleton / condition_variable 与其使用场景

一、call_once 单例模式 Singleton 大家可以先看这篇文章&#xff1a;https://zh.cppreference.com/w/cpp/thread/call_once /*std::call_oncevoid call_once( std::once_flag& flag, Callable&& f, Args&&... args ); */ #include <iostream> #i…

DT浏览器的人工智能是如何学习知识的

DT浏览器的人工智能是如何学习知识的&#xff0c;DT浏览器的人工智能通过大量的数据和算法来实现知识学习的。这是一些学习知识的方式&#xff1a; 1. 数据驱动学习&#xff1a;通过处理和分析大量的文本数据来学习语言知识和语言模式。这些数据可以来自各种来源&#xff0c;如…

解决 pnpm : 无法加载文件 C:\Program Files\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。

执行下面命令进行安装pnpm安装后 npm install -g pnpm 然后执行pnpm 报错 解决办法&#xff1a; 以管理员身份运行 Windows PowerShell &#xff0c; 在命令行输入以下命令后按回车&#xff0c; set-ExecutionPolicy RemoteSigned 再输入Y 回车即可。 再回到控制台输入p…

k8s---包管理器helm

内容预知 目录 内容预知 helm相关知识 Helm的简介与了解 helm的三个重要概念 helm的安装和使用 将软件包拖入master01上 使用 helm 安装 Chart 对chart的基本使用 查看chart信息 安装chart 对chart的基本管理 helm自定义模板 在镜像仓库中拉取chart&#xff0c;查…

大路灯和台灯哪个对眼睛好?学生备考大灯推荐

最近家长圈里开始流行这么一句话&#xff1a;鸡娃的尽头&#xff0c;是鸡眼。曾经绘画课、科学课、乐高课、思维课一样没落下&#xff0c;讲绘本、学英语也是每天的日常&#xff0c;周一到周日孩子的行程排得满满当当。可没想到有一天带着孩子去医院体检视力的时候&#xff0c;…

Javascript的基本书写方式

目录 JS 书写方式 行内JS 页面JS 外部JS JS 书写方式 在 JS 中也有三种书写方式&#xff1a; 行内JS 页面JS 外部JS 行内JS 我们在 HTML 标签上使用 JS 代码的方式就叫行内 JS&#xff0c;它一般是用于触发某种操作&#xff0c;例如点击事件。 <!DOCTYPE html> …

python 正则表达式学习(1)

正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与某种模式匹配。 1. 特殊符号 1.1 符号含义 模式描述^匹配字符串的开头$匹配字符串的末尾.匹配任意字符&#xff0c;除了换行符&#xff0c;当re.DOTALL标记被指定时&#xff0c;则可以匹配包…

LangChain实战:老喻干货店社交网络Agent一

LangChain实战&#xff1a;老喻干货店社交网络Agent一 如果您也在准备AIGC前端全栈&#xff0c;LangChain是最成熟的AI应用开发框架。欢迎点赞收藏&#xff0c;一起学习AI。 LangChain 一 hello LLM LangChain 二 模型 LangChain 三 Data Connections LangChain 四 Prompts Lan…

大模型学习与实践笔记(十一)

一、使用OpenCompass 对模型进行测评 1.环境安装&#xff1a; git clone https://github.com/open-compass/opencompass cd opencompass pip install -e . 当github超时无法访问时&#xff0c;可以在原命令基础上加上地址&#xff1a; https://mirror.ghproxy.com git clon…

网络流量分析:揭秘网络世界的“魔法水晶球”

在数字化、信息化的时代&#xff0c;网络流量分析如同网络世界中的“X光机”&#xff0c;它使我们能够透视网络内部的数据流动&#xff0c;进而理解、优化并保障网络的健康运行。那么&#xff0c;究竟什么是网络流量分析&#xff1f;它有什么作用&#xff1f;又为何不可或缺&am…

司铭宇老师:房地产中介销售培训课程:如何打消购房者买房疑虑

房地产中介销售培训课程&#xff1a;如何打消购房者买房疑虑 购房是一项重大的人生决定&#xff0c;它不仅涉及到巨大的经济投入&#xff0c;还关系到购房者未来的生活品质。因此&#xff0c;购房者在做出购买决定前往往会有许多疑虑和担忧。作为房地产销售人员&#xff0c;能够…