FLINK单机版安装部署入门-1

news2024/11/6 23:20:24

文章目录

    • FLINK单机版安装部署
    • 高于1.9.3需要修改配置文件flink-conf.yaml(低于1.9.3可以跳过)
    • linux启动集群
    • windows下启动
    • Flink提交任务方式
      • 命令方式提交
        • 运行WordCount任务
        • 运行streaming任务
      • web页面提交任务
        • 取消Job
    • java: Compilation failed: internal java compiler error
    • 高版本启动脚本

FLINK单机版安装部署

官网下载Downloads | Apache Flink

下载文件历史版本的1.9.3

https://archive.apache.org/dist/flink/flink-1.9.3/flink-1.9.3-bin-scala_2.11.tgz

# 下载Flink安装包(笔者这里测试使用Flink1.9版本,其它版本下载目录 https://flink.apache.org/downloads.html)
wget https://archive.apache.org/dist/flink/flink-1.9.3/flink-1.9.3-bin-scala_2.11.tgz

# 解压
tar -xzvf flink-1.9.3-bin-scala_2.11.tgz

netCat是linux下自带的支持TCP、UDP、Unix域协议套接字小工具,nc命令允许你创建一个连接、侦听另一个连接和传输数据。在windows环境中也可以使用
使用命令:nc -lk port号
说明: -l listen监听某个端口 k:保持住当前的连接,程序终止的话,当前server不断开
功能:启动了一个可以发送socket文本流的服务器,端口:7777

下载地址 netcat 1.11 for Win32/Win64

https://eternallybored.org/misc/netcat/

注意:

服务启动依赖jdk环境变量(确保已经安装了Java_jdk)

加上环境变量

vi source /etc/profile

export JAVA_HOME=/opt/zulu_jdk11.68.17
export PATH=$JAVA_HOME/bin:$PATH


export PATH=/opt/flink-1.9.3/bin:$PATAT

source /etc/profile

高于1.9.3需要修改配置文件flink-conf.yaml(低于1.9.3可以跳过)

修改端口号(默认端口不影响的可以直接跳过端口配置)

进入conf目录下 flink-conf.yaml 修改rest.port (8081端口过于常用,容易出现端口冲突,笔者这里改为8001)

#rest.port: 8081
rest.port: 8001

windows下需要加入如下配置,否则执行start-cluster.bat会导致TaskManager进程会退出

taskmanager.cpu.cores: 2
taskmanager.memory.task.heap.size: 512m
taskmanager.memory.managed.size: 512m
taskmanager.memory.network.min: 64m
taskmanager.memory.network.max: 64m

加上后会启动JobManager和TaskManager

linux启动集群

进入bin目录执行下面命令

# 启动Flink集群
./start-cluster.sh

# 停止Flink集群
#./stop-cluster.sh

访问Flink UI,链接http://host:8778/#/overview,查看dashboard (这里的host为部署flink的机器host)

windows下启动

windows当前能支持的最高版本是1.9.3,直接安装就行;更高的版本已经不支持windos启动了,连启动脚本都已经没有

高版本参考如下:仅供参考但是不保证能成功,基本会失败;

cmd命令行启动

flink-1.9.3\bin>.\start-cluster.bat

启动后可以在管理页面看到Available Task Slots有一个可用的slots,如果没有参考上面的flink-config.yaml缺少windows下配置项

Flink提交任务方式

1 使用Web页面Submit New Job方式提交(生产环境基本以此类方式为主)

2 使用命令行方式提交

命令方式提交

Flink安装包自带了测试样例,

运行WordCount任务
flink-\flink-1.9.3\bin> ./flink run D:\workspace\IDE\flink-1.9.3\examples\batch\WordCount.jar
运行streaming任务

examples\streaming\SocketWindowWordCount.jar

该样例为从一个ip端口获取数据,并进行单词数量统计,用来模拟数据流

运行样例分为本地运行命令行和UI界面提交运行,也就是分为本地模式和服务器模式两种

先启动端口TCP字符流

nc -lp 8888

./flink sun -c org.apache.flink.streaming.examples.socket.SocketWindowWordCount -p 1 D:\workspace\IDE\flink-1.9.3\examples\streaming\SocketWindowWordCount.jar --host localhost --port 8888

-m:指定主机名后面的端口为 JobManager的 REST 通信端口,而不是 RPC的端口,RPC通信端口是 6123(在提交任务时,是通过 REST 端口号(HTTP端口号),将任务上传到 JobManager.)

-c: 执行的主类,指定 main 方法的全类名

-p:运行的slot实例数=最大为当前所有实例数

-jar包路径

-host port :外部参数这里指参数接收的ip和端口号

在管理页面的submit new job中上传 任务jar即可

http://localhost:8001/#/submit

–hostname localhost --port 8888

这里我们依然以example中的WordCount.jar为例提交,点击该明细会出现执行的main文件路径合参数配置,默认即可,点击submit提交

job样例源码

https://gitee.com/jian_yang_lv

flink视频教程

https://www.bilibili.com/video/BV1eg4y1V7AN?p=1&vd_source=439eb7a06dc0a72103551f415ea81556

web页面提交任务

使用Web页面Submit New Job方式提交,这里依然以wordCount为例
在这里插入图片描述

填写任务main全路径,以及slot槽数
在这里插入图片描述

查看运行情况

在这里插入图片描述

WordCount 计数完成后,我们在 TaskManager 配置页面,通过 stdout 可以查看到结果信息

在这里插入图片描述

取消Job

因为Flink任务是实时的,启动就不会停止,除非出错或者人为取消Job
JOB->Running job ->明细中点击取消按钮
在这里插入图片描述

java: Compilation failed: internal java compiler error

https://blog.csdn.net/weixin_42923363/article/details/126698963

高版本启动脚本

Windows下是没有启动脚本的,这里贴上CMD启动脚本

参考资料:https://blog.csdn.net/xuexijava85/article/details/114803489

flink.bat

::###############################################################################
::  Licensed to the Apache Software Foundation (ASF) under one
::  or more contributor license agreements.  See the NOTICE file
::  distributed with this work for additional information
::  regarding copyright ownership.  The ASF licenses this file
::  to you under the Apache License, Version 2.0 (the
::  "License"); you may not use this file except in compliance
::  with the License.  You may obtain a copy of the License at
::
::      http://www.apache.org/licenses/LICENSE-2.0
::
::  Unless required by applicable law or agreed to in writing, software
::  distributed under the License is distributed on an "AS IS" BASIS,
::  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
::  See the License for the specific language governing permissions and
:: limitations under the License.
::###############################################################################

@echo off
setlocal

SET bin=%~dp0
SET FLINK_HOME=%bin%..
SET FLINK_LIB_DIR=%FLINK_HOME%\lib
SET FLINK_PLUGINS_DIR=%FLINK_HOME%\plugins

SET JVM_ARGS=-Xmx512m

SET FLINK_JM_CLASSPATH=%FLINK_LIB_DIR%\*

java %JVM_ARGS% -cp "%FLINK_JM_CLASSPATH%"; org.apache.flink.client.cli.CliFrontend %*

endlocal

start-cluster.bat

这里,我把start-cluster.bat放在bin文件夹同级目录中,而没有放在bin目录里面

::###############################################################################
::  Licensed to the Apache Software Foundation (ASF) under one
::  or more contributor license agreements.  See the NOTICE file
::  distributed with this work for additional information
::  regarding copyright ownership.  The ASF licenses this file
::  to you under the Apache License, Version 2.0 (the
::  "License"); you may not use this file except in compliance
::  with the License.  You may obtain a copy of the License at
::
::      http://www.apache.org/licenses/LICENSE-2.0
::
::  Unless required by applicable law or agreed to in writing, software
::  distributed under the License is distributed on an "AS IS" BASIS,
::  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
::  See the License for the specific language governing permissions and
:: limitations under the License.
:: author:zjcjava time:2023/05/24
::###############################################################################

@echo off
setlocal EnableDelayedExpansion

::#####这里我直接使用根目录拼接config和bin目录的path路径
SET FLINK_HOME=%cd%
SET bin==%FLINK_HOME%\bin
::### SET FLINK_HOME=%bin%..
echo ###############################################################################
echo FLINK_HOME %FLINK_HOME%
SET FLINK_LIB_DIR=%FLINK_HOME%\lib
SET FLINK_PLUGINS_DIR=%FLINK_HOME%\plugins
SET FLINK_CONF_DIR=%FLINK_HOME%\conf
SET FLINK_LOG_DIR=%FLINK_HOME%\log

echo FLINK_CONF_DIR:%FLINK_CONF_DIR%
echo ###############################################################################
SET JVM_ARGS=-Xms1024m -Xmx1024m

SET FLINK_CLASSPATH=%FLINK_LIB_DIR%\*

SET logname_jm=flink-%username%-jobmanager.log
SET logname_tm=flink-%username%-taskmanager.log
SET log_jm=%FLINK_LOG_DIR%\%logname_jm%
SET log_tm=%FLINK_LOG_DIR%\%logname_tm%
SET outname_jm=flink-%username%-jobmanager.out
SET outname_tm=flink-%username%-taskmanager.out
SET out_jm=%FLINK_LOG_DIR%\%outname_jm%
SET out_tm=%FLINK_LOG_DIR%\%outname_tm%

SET log_setting_jm=-Dlog.file="%log_jm%" -Dlogback.configurationFile=file:"%FLINK_CONF_DIR%/logback.xml" -Dlog4j.configuration=file:"%FLINK_CONF_DIR%/log4j.properties"
SET log_setting_tm=-Dlog.file="%log_tm%" -Dlogback.configurationFile=file:"%FLINK_CONF_DIR%/logback.xml" -Dlog4j.configuration=file:"%FLINK_CONF_DIR%/log4j.properties"

:: Log rotation (quick and dirty)
CD "%FLINK_LOG_DIR%"
for /l %%x in (5, -1, 1) do (
SET /A y = %%x+1
RENAME "%logname_jm%.%%x" "%logname_jm%.!y!" 2> nul
RENAME "%logname_tm%.%%x" "%logname_tm%.!y!" 2> nul
RENAME "%outname_jm%.%%x" "%outname_jm%.!y!"  2> nul
RENAME "%outname_tm%.%%x" "%outname_tm%.!y!"  2> nul
)
RENAME "%logname_jm%" "%logname_jm%.0"  2> nul
RENAME "%logname_tm%" "%logname_tm%.0"  2> nul
RENAME "%outname_jm%" "%outname_jm%.0"  2> nul
RENAME "%outname_tm%" "%outname_tm%.0"  2> nul
DEL "%logname_jm%.6"  2> nul
DEL "%logname_tm%.6"  2> nul
DEL "%outname_jm%.6"  2> nul
DEL "%outname_tm%.6"  2> nul

for %%X in (java.exe) do (set FOUND=%%~$PATH:X)
if not defined FOUND (
    echo java.exe was not found in PATH variable
    goto :eof
)

echo Starting a local cluster with one JobManager process and one TaskManager process.

echo You can terminate the processes via CTRL-C in the spawned shell windows.

echo Web interface by default on http://localhost:8081/.

start java %JVM_ARGS% %log_setting_jm% -cp "%FLINK_CLASSPATH%"; org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint --configDir "%FLINK_CONF_DIR%" > "%out_jm%" 2>&1
start java %JVM_ARGS% %log_setting_tm% -cp "%FLINK_CLASSPATH%"; org.apache.flink.runtime.taskexecutor.TaskManagerRunner --configDir "%FLINK_CONF_DIR%" > "%out_tm%" 2>&1

endlocal

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

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

相关文章

【Linux系列】Linux 和 Unix 系统中的`set`命令与错误处理

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Python | Leetcode Python题解之第537题复数乘法

题目: 题解: class Solution:def complexNumberMultiply(self, num1: str, num2: str) -> str:real1, imag1 map(int, num1[:-1].split())real2, imag2 map(int, num2[:-1].split())return f{real1 * real2 - imag1 * imag2}{real1 * imag2 imag1…

同三维T610UHK USB单路4K60采集卡

USB单路4K60HDMI采集卡,支持1路4K60HDMI输入和1路4K60HDMI环出,1路MIC输入1路Line IN音频输入和1路音频输出,录制支持4K60、1080P120,TYPE-C接口,环出支持1080P240 HDR 一、产品简介: 同三维T610UHK是一款USB单路4K60HDMI采集卡,…

设置JAVA以适配华为2288HV2服务器的KVM控制台

华为2288HV2服务器比较老旧了,其管理控制台登录java配置比较麻烦,华为的ibmc_kvm_client_windows客户端测试了几个版本,连接控制台也有问题,最终安装JDK解决。 一、测试环境 主机为WindowsServer2012R2,64位系统 二、Java软件包…

腾讯混元3D生成大模型“ Hunyuan3D-1.0”正式开源

腾讯公司近日宣布,其最新的MoE模型“混元Large”以及混元3D生成大模型“Hunyuan3D-1.0”已正式开源,供企业及开发者免费下载并商用。 腾讯混元3D生成大模型是业界首个同时支持文字、图像生成3D的开源大模型,首批开源模型包含轻量版和标准版&…

论文阅读- --DeepI2P:通过深度分类进行图像到点云配准

目前存在的问题: 单模态配准具有局限性,多模态研究很少跨模态图像到点云配准问题是求解相机坐标系与点云之间的旋转矩阵R ∈ SO(3)和平移向量t ∈ R3。 这个问题很困难,因为由于缺乏点到像素的对应关系,无法使用 ICP、PnP 和捆绑调…

MySQL表设计(三大范式 表的设计)

1.上讲约束复习: 1.NOT NULL 非空约束,被指定NOT NULL的列,值不允许为空(必填) 2. UNIQUE 唯一约束,这个列里的值在表中是唯一的,也就是说不能重复 3. PRIMARY KEY 主键约束,可以看做是NOT NULL和UNIQUE…

【修订中】js 中apply call bind 用法

一、call、apply可以翻译成继承或者借调 区别:传参不同 可以调用函数可以改变函数中this的指向 二、js 语法词法: 普通函数 构造函数: 为什么不在构造函数中写方法 function Student(n, a) {this.uname n;this.age a;this.sayHi func…

Android15音频进阶之Cuttlefish搭建音频开发环境(九十二)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

【Unity】Unity拖拽在Android设备有延迟和卡顿问题的解决

一、介绍 在制作Block类游戏时,其核心的逻辑就是拖拽方块放入到地图中,这里最先想到的就是Unity的拖拽接口IDragHandler,然后通过 IPointerDownHandler, IPointerUpHandler 这两个接口判断按下和松手,具体的实现逻辑就是下面 public void On…

如何理解ETLCloud在iPaas中的关键角色

在当今的数字化时代,企业越来越依赖于其处理和分析数据的能力。为了实现这一目标,企业需要将各种异构的应用和数据源集成在一起,形成一个统一的数据视图。在这一过程中,ETL(Extract, Transform, Load)和iPa…

Linux多线程(个人笔记)

Linux多线程 1.Linux线程概念1.1线程的优点1.2线程的缺点 2.Linux线程VS进程3.Linux线程控制3.1创建线程3.2线程tid及进程地址空间布局3.3线程终止3.4线程等待 4.分离线程5.线程互斥5.1互斥锁mutex5.2互斥锁接口5.3互斥锁实现原理5.4可重入VS线程安全 6.线程同步6.1条件变量6.2…

【案例】故障雪花屏

开发平台:Unity 6.0 开发工具:Shader Graph 参考视频:【U2D Shader Graph】❄️雪❄️花❄️屏❄️   一、效果图 二、Shader Graph 路线图 三、案例分析 核心思路:雪花屏幕效果 (混合) 原图像 最终图像…

Hunyuan-Large:推动AI技术进步的下一代语言模型

腾讯近期推出了基于Transformer架构的混合专家(MoE)模型——Hunyuan-Large(Hunyuan-MoE-A52B)。该模型目前是业界开源的最大MoE模型之一,拥有3890亿总参数和520亿激活参数,展示了极强的计算能力和资源优化优…

arkUI:Column和Rom的间距设置(列向,横向)

arkUI:Column和Rom的间距设置(列向,横向) 1 主要内容说明2 相关内容举例和说明2.1 Column的间距(列的间距)2.1.1 源码1 (Column的间距)2.1.2 源码1运行效果 2.2 Row的间距&#xff0…

QML项目实战:自定义Combox

目录 一.添加模块 import QtQuick.Controls 2.4 import QtQuick.Templates 2.4 as T import QtGraphicalEffects 1.15 import QtQuick 2.15 as T2 二.自定义Combox 1.combox文字显示 2.设置下拉图标显示 3.下拉框中选中背景设置 4.下拉框中选中文字设置 5.下拉框设置…

【设计模式系列】原型模式(十一)

一、什么是原型模式 原型模式(Prototype Pattern)是一种创建型设计模式,它使得一个对象可以复制自身,从而创建一个与自己属性一致的新对象,而无需知晓对象创建的细节。这种模式允许动态地增加对象的数量,并…

h5web浏览器获取腾讯地图经纬度

https://lbs.qq.com/dev/console/application/mine 去腾讯地图申请key 然后前端页面引用 <script type"text/javascript" src"https://apis.map.qq.com/tools/geolocation/min?key自己的key&referertest"></script>调用代码 let geoloca…

微积分复习笔记 Calculus Volume 1 - 4.6 | Limits at Infinity and Asymptotes

4.6 Limits at Infinity and Asymptotes - Calculus Volume 1 | OpenStax

开源的flash浏览器 CelfFlashBrowser

特点 不用安装flash就可以玩flash游戏。 可播放在线和本地的swf文件 下载地址 &#xff1a;https://github.com/Mzying2001/CefFlashBrowser