Flink开发环境准备: centos-jdk8

news2024/9/21 12:37:53


linux-jdk8 - Flink开发环境准备

  • 一、基本介绍
  • 二、环境准备
    • 1.1 JDK环境
    • 1.2 开发工具
    • 1.3 Maven环境
  • 三、flink下载安装配置
    • 3.1 Flink下载
    • 3.2 flink本地模式安装 - linux
    • 3.3 常用配置
    • 3.4 日志的查看和配置
  • 四、单机 Standalone 的方式运行 Flink

1

一、基本介绍

  Flink底层源码是基于Java代码进行开发,在Flink编程中我们除了可以使用Java语言来进行编写Flink程序外,还可以使用Scala、Python语言来进行编写Flink程序。

本文主要使用Java来编写Flink程序。

  • flink搭建在centos服务器:jdk环境1.8、flink单机 - 1.16.0版本
  • 开发环境搭建在win10系统:jdk环境1.8、idea、maven3.4.5

回到目录
下面来准备下Flink开发环境:

二、环境准备

1.1 JDK环境

  Flink核心模块均采用Java开发,所以运行环境需要依赖JDK,Flink可以基于类UNIX 环境中运行,例如:Linux、Max、OS、Windows等,在这些系统上运行Flink时都需要配置JDK环境。Flink早在1.15就要求使用JDK11,主要是为了用上比G1更优秀的ZGC。Flink1.16.0版本也支持使用JDK8,后续版本对JDK8的支持将会移除。

  • windows环境:

建议升级到JDK11,
JDK11 下载地址如下:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
jdk1.8下载地址如下:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

  • linux环境:参考链接 - CentOS安装jdk的三种方法
    1

  考虑到Flink后期与一些大数据框架进行整合,这些大数据框架对JDK11的支持并不完善,例如:Hive3.1.3版本还不支持JDK11,所以本文采用JDK8来开发Flink。

回到目录

1.2 开发工具

  可以选择IntelliJ IDEA或者Eclipse作为Flink应用的开发IDE,Flink开发官方建议使用IntelliJ IDEA,因为它默认集成了Scala和Maven环境,使用更加方便。
  具体安装步骤详见:IntelliJ IDEA 安装及配置详细教程

博主使用IntelliJ IDEA开发工具.

回到目录

1.3 Maven环境

  通过IntelliJ IDEA进行开发Flink Application时,可以使用Maven来作为项目jar包管理工具,需要在本地安装Maven及配置Maven的环境变量,需要注意的是,Maven版本需要使用3.0.4及以上,否则编译或开发过程中会有问题。
  具体安装步骤详见:Maven下载安装及IDEA配置Maven的超详细教程

本文使用Maven3.5.4

回到目录

三、flink下载安装配置

3.1 Flink下载

  flink 从 1.10开始,windows上跑不起来,各种问题。windows当前能支持的最高版本是1.9.3,直接安装就行。
选择合适的版本下载,官方下载地址:https://archive.apache.org/dist/flink/

本文选择的版本Flink1.16.0,Flink1.16.0版本官方文档地址:
https://nightlies.apache.org/flink/flink-docs-release-1.16/
1

回到目录

3.2 flink本地模式安装 - linux

参考链接:【Flink入门】centos上flink安装部署(standalone模式)

注意:centos需要先安装jdk环境 ,参考链接 - CentOS安装jdk的三种方法

  1. 创建目录,将下载文件放入该目录;或者直接本地下载,执行如下命令:
wget http://mirrors.estointernet.in/apache/flink/flink-1.16.0/对应版本的安装包名称.tgz
# 示例 :下载flink1.16.0版本
wget http://mirrors.estointernet.in/apache/flink/flink-1.16.0/flink-1.16.0-bin-scala_2.11.tgz
  1. 解压安装包,执行命令:
tar -zxvf 安装包名称.tgz
# 示例 
tar -zxvf flink-1.16.0-bin-scala_2.11.tgz

回到目录

3.3 常用配置

1. 配置 TaskManager 的部署:
  flink安装包的/conf/slaves用于配置 TaskManager 的部署,默认配置下只会启动一个 TaskManager 进程,如果想增加一个 TaskManager 进程的,只需要文件中追加一行“localhost”。
也可以直接通过“ ./bin/taskmanager.sh start ”这个命令来追加一个新的 TaskManager:

./bin/taskmanager.sh start|start-foreground|stop|stop-all

2. 配置 JM 和 TM 的运行参数:
  flink安装包的/conf/flink-conf.yaml用于配置 JM 和 TM 的运行参数,常用配置有:

# The total process memory size for the JobManager.
# Note this accounts for all memory usage within the JobManager process, including JVM metaspace and other overhead.
# 包括JobManager进程中的所有内存使用,包括JVM元空间和其他开销
jobmanager.memory.process.size: 1600m

# The total process memory size for the TaskManager.
# Note this accounts for all memory usage within the TaskManager process, including JVM metaspace and other overhead.
# 这包括TaskManager进程中的所有内存使用,包括JVM元空间和其他开销
taskmanager.memory.process.size: 1728m

# To exclude JVM metaspace and overhead, please, use total Flink memory size instead of 'taskmanager.memory.process.size'.
# It is not recommended to set both 'taskmanager.memory.process.size' and Flink memory.
# 要排除JVM元空间和开销,请使用总Flink内存大小,而不是'taskmanager.memory.process.size'。不建议同时设置'taskmanager.memory.process. '和Flink内存
# taskmanager.memory.flink.size: 1280m

# The number of task slots that each TaskManager offers. Each slot runs one parallel pipeline.
# 每个任务管理器提供的任务槽数。每个插槽运行一个并行管道
taskmanager.numberOfTaskSlots: 1

# The parallelism used for programs that did not specify and other parallelism.
# 用于未指定程序的并行度和其他并行度
parallelism.default: 1

回到目录

3.4 日志的查看和配置

  JobManager 和 TaskManager 的启动日志可以在 Flink binary 目录下的 Log 子目录中找到。Log 目录中以flink-{id}-${hostname}为前缀的文件对应的是 JobManager 的输出,其中有三个文件:

  • flink-${user}-standalonesession-${id}-${hostname}.log:代码中的日志输出
  • flink-${user}-standalonesession-${id}-${hostname}.out:进程执行时的stdout输出
  • flink-${user}-standalonesession-${id}-${hostname}-gc.log:JVM的GC的日志

  Log 目录中以flink-{id}-${hostname}为前缀的文件对应的是 TaskManager 的输出,也包括三个文件,和 JobManager 的输出一致。
日志的配置文件在 Flink binary 目录的 conf 子目录下,其中:

  • log4j-cli.properties:用 Flink 命令行时用的 log 配置,比如执行“ flink run”命令
  • log4j-yarn-session.properties:用 yarn-session.sh 启动时命令行执行时用的 log 配置
  • log4j.properties:无论是 Standalone 还是 Yarn 模式,JobManager 和 TaskManager 上用的 log 配置都是 log4j.properties。
      这三个“log4j.*properties”文件分别有三个“logback.*xml”文件与之对应,如果想使用 Logback 的同学,只需要把与之对应的“log4j.*properties”文件删掉即可,对应关系如下:
  • log4j-cli.properties -> logback-console.xml
  • log4j-yarn-session.properties -> logback-yarn.xml
  • log4j.properties -> logback.xml
      需要注意的是,flink-{id}-和{user}-taskexecutor-{hostname}都带有“,{id}”表示本进程在本机上该角色(JobManager 或 TaskManager)的所有进程中的启动顺序,默认从 0 开始。

回到目录

四、单机 Standalone 的方式运行 Flink

最简单的运行 Flink 应用的方法就是以单机 Standalone 的方式运行。

  1. 进入flink安装目录: cd 安装目录
  2. 启动集群:./bin/start-cluster.sh
  3. 打开 http://127.0.0.1:8081/ 就能看到 Flink 的 Web 界面。如果看不到,看centos服务器的8081端口防火墙是否打开。
#示例:新增防火墙开放端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
  1. 停止集群:./bin/stop-cluster.sh

回到目录

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

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

相关文章

架构,性能和游戏 《游戏编程模式》学习笔记

开新坑,准备把《游戏编程模式》这本书啃完。这是一本讲设计模式的书,针对游戏开发而作,写得很好。 以下是读书笔记,文末有原文链接 每个程序都有一定的软件架构,哪怕是全塞到main里也是一种架构好的架构可以把代码写成…

【LeetCode 75】第二十题(2215)找出两数组的不同

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 找出两个数组中不一样的数,将nums1中有的数而nums2没有的数放在res[0]中,将nums2中有的数二nums1没有的数放在res[1]中. 那我们…

路由器静态路由实验

介绍 静态路由是由管理员手动配置和维护的路由。 如何理解静态路由了?配置一条静态路由就是告诉路由器怎么去往某个目的ip或ip地址段。去往目的地的时候需要查找路由表。 静态路由优缺点: 优点: 静态路由配置简单,并且无需动态…

03.利用Redis实现缓存功能---解决缓存穿透版

学习目标&#xff1a; 提示&#xff1a;学习如何利用Redis实现添加缓存功能解决缓存穿透版 学习产出&#xff1a; 缓存穿透讲解图&#xff1a; 解决方案&#xff1a; 采用缓存空对象采用布隆过滤器 解决方案流程图&#xff1a; 1. 准备pom环境 <dependency><gro…

完整模型的训练套路

从心所欲 不逾矩 天大地大 皆可去 一、官方模型的初使用 使用VGG16模型 VGG模型使用代码示例&#xff1a; import torchvision.models from torch import nndataset torchvision.datasets.CIFAR10(/cifar10, False, transformtorchvision.transforms.ToTensor())vgg16_true …

百度智能创做AI平台

家人们好&#xff0c;在数字化时代&#xff0c;人工智能正引领着一场前所未有的创新浪潮。今天&#xff0c;我们将为大家介绍百度智能创做AI平台&#xff0c;这个为创意赋能、助力创作者的强大工具。无论你是创意工作者、内容创作者&#xff0c;还是想要释放内心创造力的个人&a…

人工智能巨头齐聚,研究和掌控人工智能

这四家公司表示&#xff0c;他们成立了Frontier Model Forum&#xff0c;以确保"前沿AI模型的安全和负责任的开发"。 四家全球最先进的人工智能公司成立了一个研究日益强大的人工智能并建立最佳控制实践的组织&#xff0c;随着公众对技术影响的担忧和监管审查的增加…

Python(七十)元组的遍历

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

基于MFCC特征提取和HMM模型的语音合成算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022A 3.部分核心程序 ............................................................................ %hmm是已经…

桥接模式(C++)

定义 将抽象部分(业务功能)与实现部分(平台实现)分离&#xff0c;使它们都可以独立地变化。 使用场景 由于某些类型的固有的实现逻辑&#xff0c;使得它们具有两个变化的维度&#xff0c;乃至多个纬度的变化。如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型…

一分钟完成centos7安装docker

action: 1、下载安装包2、安装docker 1、背景 使用CentOS / Redhat 7 版本的应该偏多。但是&#xff0c;Docker CE在系统中安装的时候&#xff0c;往往会出现一堆依赖包的报错&#xff0c;解决依赖包需要耗费不短的时间。 经验证&#xff0c;目前已找到兼容能力强的版本&am…

debug思路 - maven构建报错

问题&#xff1a;maven面板中&#xff0c;进行compile、deploy操作时报错。 debug步骤&#xff1a; 1、鼠标右键选择“修改运行配置”。在运行命令中添加参数-X&#xff0c;用于产生执行调试输出。例如&#xff1a;compile -f -X pom.xml。 2、再次进行compile、deploy操作&…

利用线程池多线程并发实现TCP两端通信交互,并将服务端设为守护进程

文章目录 实现目标实现步骤封装日志类封装线程池封装线程封装锁封装线程池 TCP通信的接口和注意事项accept TCP封装任务客户端Client.hppClient.cc 服务端Server.hpp Server.cc实现效果 守护进程服务端守护进程化 实现目标 利用线程池多线程并发实现基于TCP通信的多个客户端与…

《向量数据库指南》——腾讯云向量数据库Tencent Cloud VectorDB应用场景

目录 大模型知识库 推荐系统 问答系统 文本/图像检索 大模型知识库 腾讯云向量数据库可以和大语言模型 LLM 配合使用。企业的私域数据在经过文本分割、向量化后,可以存储在腾讯云向量数据库中,构建起企业专属的外部知识库,从而在后续的检索任务中,为大模型提供提示信息…

C语言每日一题:14《数据结构》复制带随机指针的链表

题目一&#xff1a; 题目链接&#xff1a; 思路一&#xff1a; 找相对位置暴力求解的方法&#xff1a; 1.复制一个新的链表出来遍历老的节点给新的节点赋值&#xff0c;random这个时候不去值。 2.两个链表同时遍历&#xff0c;遍历老链表的时候去寻找相对位置&#xff0c;在遍…

「Qt」常用事件介绍

&#x1f514; 在开始本文的学习之前&#xff0c;笔者希望读者已经阅读过《「Qt」事件概念》这篇文章了。本文会在上篇文章的基础上&#xff0c;进一步介绍 Qt 中一些比较常用的事件。 0、引言 当我们想要让控件收到某个事件时做一些操作&#xff0c;通常都需要重写相应的事件处…

Mysql如何实现XA规范

文章目录 一、什么是XA二、XA规范涉及到的角色&#xff0c;以及相关概念1. XA规范涉及到的角色包括&#xff1a;1.1 事务管理器&#xff08;Transaction Manager&#xff09;&#xff1a;1.2 资源管理器&#xff08;Resource Manager&#xff09;&#xff1a; 2. 相关概念包括&…

复原 IP 地址——力扣93

文章目录 题目描述回溯题目描述 回溯 class Solution{public:static constexpr int seg_count=4<

解决CF窗口黑边办法

1、桌面鼠标右键点击【英伟达控制面板】 2、点击 【调整桌面尺寸和位置】 3、缩放模式改为 【全屏】即可。 最终效果&#xff1a;

redis的配置和使用、redis的数据结构以及缓存遇见的常见问题

目录 1.缓存 2.redis不仅仅可以做缓存&#xff0c;只不过说他的大部分场景&#xff0c;是做缓存。本地缓存重启后缓存里的东西就没有了&#xff0c;但是redis有。 3.redis有几个特性:查询快&#xff0c;但是是放到内存里的〈断电或者重启&#xff0c;数据就丢了)&#xff0c…