Flink开发环境准备: centos-jdk8


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

回到目录

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Open3D (C++) 计算矩阵的广义逆

目录 一、算法原理1、广义逆2、计算过程二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。爬虫网站自重,把自己当个人,爬些不完整的误导别人有意思吗???? 一、算法原理 1、广义逆 非方阵不存在逆,但是存在广义逆(伪逆)。对于一个矩阵

【大数据】-- docker 启动 mysql 5.7,开启 binlog

1.说明 mysql binlog:二进制日志文件。它有两个作用,一是增量备份,即只备份新增的内容,可以用于恢复数据;二是用于主从复制等,即主节点维护了一个binlog日志文件,从节点从binlog中同步数据。 …

ChatGPT下架官方检测工具,承认无法鉴别AI内容

去年底,OpenAI 推出的 ChatGPT ,带来了生成式人工智能涌现的热潮。它不仅能够协助完成撰写邮件、视频脚本、文案、翻译、代码等任务,还能通过学习和理解人类的语言来进行对话,并根据聊天的上下文进行互动。 但随之而来的争议也让人…

【雕爷学编程】Arduino动手做(186)---WeMos ESP32开发板15

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

Java 8 中使用 Stream 遍历树形结构

在实际开发中,我们经常会开发菜单,树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看&#x…

找不到org.apache.http.annotation.NotThreadSafe的类文件

问题现象 最近在做一个调用包含请求体的GET请求功能的时候,引用了 httpclient-4.5.2.jar 和 httpcore-4.4.5.jar。 在工程编译环节报错如下: 原因分析 httpcore 和 httpclient 的版本不匹配。 解决方案 将 httpcore 的版本由 4.4.5 改为 4.4.4&am…

Unity学习参考文档和开发工具

☺ unity的官网文档:脚本 - Unity 手册 ■ 学习方式: 首先了解unity相关概述,快速认识unity编辑器,然后抓住重点的学:游戏对象、组件|C#脚本、预制体、UI ☺ 学习过程你会发现,其实Unity中主要是用c#进行开…

大麦订单生成器 大麦一键生成订单

后台一键生成链接,独立后台管理 教程:修改数据库config/Conn.php 不会可以看源码里有教程 下载源码程序:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

基于C#的应用程序单例唯一运行的完美解决方案 - 开源研究系列文章

今次介绍一个应用程序单例唯一运行方案的代码。 我们知道,有些应用程序在操作系统中需要单例唯一运行,因为程序多开的话会对程序运行效果有影响,最基本的例子就是打印机,只能运行一个实例。这里将笔者单例运行的代码共享出来&…

安防监控视频融合EasyCVR平台接入RTSP流后设备显示离线是什么原因?

安防监控视频EasyCVR视频汇聚融合平台基于云边端智能协同架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理、全网分发、按需调阅、鉴权播放、智能分析等视频能力与服务。平台开放度高、兼容性强、可支持灵活拓展与第三方集成&#xff…

聊聊比亚迪的DM-i技术

比亚迪的DM-i技术是一种混合动力技术,结合了燃油发动机和电动技术,旨在提高汽车的燃油经济性和环境友好性。 DM-i技术的核心是搭载了一台高效的燃油发动机和一组电动机,通过电子控制系统实现两者的协同工作。在日常行驶中,汽车首先…

Baumer工业相机堡盟工业相机如何通过BGAPISDK获取相机接口数据吞吐量(C++)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来获取相机当前数据吞吐量(C) Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在BGAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过BGAPI SDK获取数…

vue3中的自定义指令用法

我们都知道vue2中自定义指令全局和局部是这样写的 局部: 全局: 可vue3写法发生改变,如下: 全局: 局部:

台式机/工控机通过网线共享笔记本电脑无线网络linux系统下 usb网卡的驱动安装

一、台式机/工控机通过网线共享笔记本电脑无线网络 1、 将台式机通过网线和笔记本连接。 2、 将笔记本的“本地连接”和“无线网络连接”的ipv4均设置为自动获取。 4.修改台式机的IP地址为如下(对应笔记本信息) IP地址为192.168.XXX.12 子网掩码为255.2…

JavaScript |(六)DOM事件 | 尚硅谷JavaScript基础实战

学习来源:尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 文章目录 📚事件对象📚事件的冒泡📚事件的委派📚事件的绑定🐇赋值绑定🐇addEventListener()🐇attachEvent()&…

javaAPI(五):System、Math、BigInteger、BigDecimal

System类 System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。 由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员,所以也可以很方便的进行调用。变量…

Uni-Dock:GPU 分子对接使用教程

github文件下载: git clone https://github.com/dptech-corp/Uni-Dock.git cd Uni-Dock/example/screening_test wget https://github.com/dptech-corp/Uni-Dock/releases/download/1.0.0/unidock 将此文件加入到全局变量中 chmod x unidock sudo mv unidock /…

【数理知识】求刚体旋转矩阵和平移矩阵,已知 N>=3 个点在前后时刻的坐标,且这 N>=3 点间距离始终不变代表一个刚体

序号内容1【数理知识】自由度 degree of freedom 及自由度的计算方法2【数理知识】刚体 rigid body 及刚体的运动3【数理知识】刚体基本运动,平动,转动4【数理知识】向量数乘,内积,外积,matlab代码实现5【数理知识】协…

揭秘程序员最喜欢的5个高薪工作

大家好,这里是程序员晚枫。想了解更多精彩内容,快来关注程序员晚枫 今天给大家推荐5个适合程序员的高薪岗位。 01 推荐岗位 以下是5个工资最高的程序员工作: 数据科学家:数据科学家是负责数据收集、处理、分析和报告的专业人员。…

点击编辑变完成

<template><div><button click"dialogshowtrue">添加部门</button><div>部门列表</div><el-table ref"multipleTable" :data"form" tooltip-effect"dark" style"width: 100%">&l…