flink入门实例-Windows下本地模式跑SocketWordCount

Flink学习(一):SocketWindowWordCount示例 参考资料:官方文档 & 官方示例代码 首先是环境配置,很简单,下载下来解压就可以。 然后运行bin/start-cluster.sh启动Flink,虽然脚本名字是cluster,不过默认配置是启动的本地模式。启动后,可以在浏览器输入localhost:8081进入Dashboard: 接下来就是按照给定的代码编写示例程序并运行,不过程序example目录已经有打包好的... 阅读详情

一、nc工具

配置windows的nc端口,在网上下载nc.exe(https://eternallybored.org/misc/netcat/)
进入解压目录运行如下命令

nc -L -p 9000 -v

使用命令开始nc制定端口为9000(nc -L -p 9000 -v) 启动插件

二、idea中配置,代码以及设置参数

maven配置:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>lims</groupId>
    <artifactId>flink-project</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <flink.version>1.7.2</flink.version>
    </properties>

    <dependencies>
        <!--log4j-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <!--flink-->
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-java</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-clients_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-connector-wikiedits_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>
    </dependencies>

</project>

WordCount的源码:我这里直接把端口写死了

import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.utils.ParameterTool;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.windowing.time.Time;
import org.apache.flink.util.Collector;


/**
 * @Description: TODO
 * @Date: 2019/12/5 20:49
 */
public class WordCount {
    public static void main(String[] args) throws Exception {
       //定义socket的端口号
        int port = 9000;
        /*try{
            ParameterTool parameterTool = ParameterTool.fromArgs(args);
            port = parameterTool.getInt("port");
        }catch (Exception e){
            System.err.println("没有指定port参数,使用默认值9000");
            port = 9000;
        }*/

        //获取运行环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

        //连接socket获取输入的数据
        DataStreamSource<String> text = env.socketTextStream("127.0.0.1", port, "\n");

        //计算数据
        DataStream<WordWithCount> windowCount = text.flatMap(new FlatMapFunction<String, WordWithCount>() {
            public void flatMap(String value, Collector<WordWithCount> out) throws Exception {
                String[] splits = value.split("\\s");
                for (String word:splits) {
                    out.collect(new WordWithCount(word,1L));
                }
            }
        })//打平操作,把每行的单词转为<word,count>类型的数据
                .keyBy("word")//针对相同的word数据进行分组
                .timeWindow(Time.seconds(2),Time.seconds(1))//指定计算数据的窗口大小和滑动窗口大小
                .sum("count");

        //把数据打印到控制台
        windowCount.print()
                .setParallelism(1);//使用一个并行度
        //注意:因为flink是懒加载的,所以必须调用execute方法,上面的代码才会执行
        env.execute("streaming word count");

    }

    /**
     * 主要为了存储单词以及单词出现的次数
     */
    public static class WordWithCount{
        public String word;
        public long count;
        public WordWithCount(){}
        public WordWithCount(String word, long count) {
            this.word = word;
            this.count = count;
        }

        @Override
        public String toString() {
            return "WordWithCount{" +
                    "word='" + word + '\'' +
                    ", count=" + count +
                    '}';
        }
    }
}

三、运行结果

cmd中输入单词,空格分割,并换行,在idea的控制台中观察输出
在这里插入图片描述
IDEA在这里插入图片描述
本地开发调试实例完成

原文地址
https://www.cnblogs.com/limaosheng/p/10434848.html

Flink local模式运行SocketWordcount local模式启动flink./bin/start-local.sh查看启动日志tail log/flink-*-jobmanager-*.log启动netcat作为本地服务器生产数据nc -l 9000提交flink程序,该程序会连接socket,等待输入数据./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 90 阅读详情

相关推荐

flink系列2 wordcount测试(windows)

参考文档 https://ci.apache.org/projects/flink/flink-docs-master/quickstart/setup_quickstart.html windows上测试,linux上2017年4月的存档中有 1、准备工具。在百度或者google上搜索netcat-win32-1.11.zip。 运行nc64 -l -p 9099。启动监听程序 2、安

dataastron的博客 2369

【Flink】(05)Apache Flink 漫谈系列 —— SocketWindowWordCount 程序执行过程源码分析

本文主要是根据一段简单的 `SocketWindowWordCount` 代码,进而对 Flink 的执行过程进行剖析。

云祁QI 1166

流批一体计算引擎-3-[Flink]的本地模式Local和standalone模式

flink的安装

qq_20466211的博客 1809

Flink 1.12.2 源码浅析 : SocketWindowWordCount 代码简析

.一 .前言二 .代码解析2.1. StreamExecutionEnvironment.getExecutionEnvironment2.2. source加载数据2.3. Source数据实现2.3.1. SourceFunction 接口.2.3.2. SocketTextStreamFunction 实现2.3.3. addSource 实现2.4. flatMap 函数2.5. keyBy 函数2.6. window 函数2.7. reduce 函数2.8. windowCounts.print(

张伯毅的专栏 1072

Flink笔记(五):Windows/Linux 开启端口监听

1.Windows 开启端口监听        Windows本身是不支持 nc 端口监听的。但是我们可以通过下载 netcat 来是解决这个问题。下载地址:netcat        下载后,进行解压,并将解压后目录下的所有文(.txt 文件除外),复制到 C:\Windows\System32 目录下,我们便可以在 cmd 命令行使用 nc 命令了。        我们通过命令:nc -help可以查看该命令的使用描述。        使用命令:nc -lp 8888即可开启监听 8888 端口号 2.Linux 开启端口监听       Linux 开启端口监听,也是使用nc命令

游戏开发实战:如何用旋转矩阵实现2D角色平滑转向(附Unity代码)

本文深入探讨了在Unity游戏开发中,如何运用旋转矩阵原理实现2D角色的平滑转向。文章从核心理论出发,提供了计算目标旋转、实现平滑插值(Lerp与SmoothDamp)的完整C#代码,并解决了与动画系统、物理引擎协同的常见难题,帮助开发者提升游戏操作手感与视觉流畅度。

weixin_29057237的博客 287

使用Flink的各种技术实现WordCount逻辑

使用Flink技术手段实现大数据词频计算的wordcount,在不同的情况下如何使用wordcount,批处理和流处理双方面思维,结合于滚动窗口。

play_big_knife的博客 2016

2021年J题:基于STM32F103的周期信号波形识别与参数测量系统设计(立创EDA+SZPT_ZXL)

本文详细复盘了2021年全国大学生电子设计竞赛J题获奖项目,手把手教你如何基于STM32F103微控制器设计并实现周期信号波形识别与参数测量系统。文章深入剖析了硬件电路设计(包括程控放大、工作点抬升与滞回比较器)与核心软件算法(如动态采样、FFT频谱分析与波形识别逻辑),并分享了DMA传输、FFT库使用等实战要点与避坑指南,为嵌入式信号处理与电赛备赛提供了宝贵经验。

weixin_32673065的博客 227

Kinect for Windows SDK开发初体验(一)环境配置

SocketWordCount是Flink中的经典示例,它通过Socket接收实时数据流,对数据流中的单词进行计数,并将结果实时输出。在SocketWordCount中,keyBy操作使用了Key Group Partitioning策略,确保相同单词的数据被发送到同一个分区进行处理。System.out.println("客户端已连接,输入要发送的数据(输入'exit'退出):");最后,调用execute方法启动作业。注意,Flink程序是惰性执行的,只有调用execute方法才会真正触发计算。

YJWN3gVqU的博客 425

COMSOL网格划分技巧总结

在对马赫曾德尔型光学传感器进行模拟仿真时,在采用自动物理场自动控制网格-极细化的情况下透射谱曲线仍不理想,因此需要手动划分网格来对其进行更精细的剖分。 手动划分的基本原则是在作用边界,热点,曲边处做细致划分, 基底,包层等做粗略划分。对于光波导型的微纳结构,在仿真时一般需要用到创建边界层网格。 1.COMSOL所需要的网格数量 网格单元数越多,结果精细度越高,计算所需内存越多。在细化到一定程度后网格收敛,仿真结果提升不明显。 2.网格剖分类型 ...

qq_42453337的博客 4万+

从NVLINK到EthLink:GPU互联技术演进全解析(含最新行业趋势)

本文深入解析了从NVLINK到EthLink的GPU互联技术演进,重点剖析了Scale-up与Scale-out两种核心范式。文章详细对比了NVLINK、UALINK及革命性的EthLink技术,后者创新性地将以太网改造为支持Load/Store与RDMA双语义的高性能互联网络,旨在打破封闭生态,实现高性能与开放性的统一。最后,文章提供了技术选型指南并展望了未来以以太网为主导、语义融合的行业趋势。

weixin_29204749的博客 176

零基础学会flink,保姆级超详细教学

本文提供了一个三周学会Apache Flink的详细学习路线,从环境搭建到项目实战,适合零基础开发者快速掌握Flink流处理技术。 学习路线概览: 环境搭建(JDK11、Maven、IntelliJ IDEA和Flink集群) 基础入门(WordCount程序) 核心API学习(DataStream算子、时间窗口、状态管理) 高级功能(Table API/SQL、Kafka连接器) 综合项目实战(实时订单统计/用户行为分析) 第一天重点: 详细演示了开发环境配置(JDK11安装验证、Maven配置、IDEA

korry24的博客 284

基于ESP32的智能停车场管理系统开发

智能停车场管理系统通过引入物联网(IoT)技术,实现对停车场内车辆的实时监控、空闲车位的管理、车辆的入场与出场控制等功能,大大提高了停车场的利用率和管理效率。通过集成物联网技术、云平台以及先进的传感器和执行器,系统不仅能实时监控停车场的车位状态,还能提供更好的用户体验。本文将介绍如何基于ESP32开发一个智能停车场管理系统,涵盖系统架构、硬件选择、软件开发以及最新技术的应用,帮助开发者实现高效的智能停车管理。ESP32的代码主要负责处理车位传感器的数据,控制LED指示灯的状态,以及与云平台进行数据交互。

2201_76125393的博客 910

4.2.2SocketWindowWordConut任务类

这里写目录标题SocketWindowWordConut任务类文件内容1.第一步main方法2.flink五步流程1.初始化env2.source数据来源3.transform数据转换1.flatmap2.map2.keyBy,reduce4.sink数据去向5.启动env3.第一次运行会报错注:运行前启动端口1.出现如下错误2.错误原因:3.如何解决4.最后的完整代码 SocketWindowWordConut任务类文件内容 1.第一步main方法 IDEA快捷方法,直接打psvm回车 public cl

weixin_46880810的博客 637

【Pix4d精品教程】Pix4d中央子午线细化设置(测区跨两个分带)

本文介绍了在Pix4d软件中通过修改中央子午线设置来解决跨分带测区刺点问题的方法。针对测区跨3度分带(如105°和108°之间)时像控点与靶标点偏移较大的情况,建议将中央子午线设为测区中心(如106.5°)。具体操作步骤包括:修改投影文件中的中央子午线参数,选择新的输出坐标系配置文件。该方法能有效提高像控点刺点效率,为航测内业数据处理提供便利。操作简单实用,适合大比例尺测图项目中跨分带测区的数据处理需求。

智慧空间实验室 5526

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

运行flink socketwindowwordcount.jar 报错_妈妈再也不用担心,我学不会大数据 flink 啦...

1. 业务说:“…… bulabula……,这个需求很简单,怎么实现我不管?”面对霸气侧漏的业务需求,由于没有大数据知识储备,咱心里没底,咱也不敢问,咱也不敢说,只能静下来默默储备、默默寻觅解决方案。关注“一猿小讲”公众号的小伙伴们,今天有福啦,因为今天我们将一起跳出系统之外,共同迈入大数据之 flink 的大门。flink 是啥?flink 干啥用的?……我相信,你心中肯定有类似千万种这样疑问,...

weixin_39640773的博客 1253

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

flink本地模式

一、本地模式简介 本地模式是最快的一种部署方式,主要用于本地测试验证。 二、环境依赖 Linux, 这里使用的是fedora33 jdk, 这里选择的1.8.0_281 flink, 这里选择flink-1.12.1 $ cat /etc/redhat-release Fedora release 33 (Thirty Three) $ java -version java version "1.8.0_281" Java(TM) SE Runtime Environment (buil

happytree001的博客 746

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Flink 搭建 - 本地模式

Flink 搭建 - 本地模式模式说明安装准备安装测试 Apache Flink 1.10 Documentation 模式说明 本地模式适用于本地开发和测试环境,占用的资源较少,部署简单 安装准备 ① 环境准备 Linux 服务器 ② 下载安装包 Apache Flink: Downloads Apache Flink: Downloads: flink-1.10.0-bin-scala_2.11.tgz 注意:本博客基于 Flink 1.10 版本安装 # 版本说明 # 1.10.0 是 flink 的

半吊子Kyle的博客 1723

运行flink socketwindowwordcount.jar 报错_答应你们的,Flink的算子操作来喽,你们要看奥(说话算话)...

前言好的,我们这一篇来介绍一下Flink的算子操作Flink的下载很简单,下好之后解压出来,进到Flink的bin目录下,启动 start-cluster.sh 即可,此时我们可以访问 localhost:8081 去进行访问它那精美的页面停止的话,使用 stop-cluster.sh 即可一、Flink 的算子1.1 (补充)Flink Shell 使用针对初学者,开发的时候容易出错,如果每次都...

weixin_39718173的博客 719

Flink学习(1):Flink本地模式安装及简单试用

Flink 的本地模式安装及简单试用,基本参照官网教程进行。

邢慧鹏的博客 3973

使用idea 创建flink项目并测试WindowWordCount

flink mysql hadoop

大龄程序员 220

Flink的部署模式:Local模式、Standalone模式、Flink On Yarn模式

Local模式、Standalone模式和FlinkonYARN模式是Flink的三种常见部署模式。

积跬步,至千里。 7205

Flink简介及部署模式

Spark 和 Flink 一开始都都希望能够用同一个技术把流处理和批处理统一起来,但他们走了完全不一样的两条路。前者是以批处理的技术为根本,并尝试在批处理之上支持流计算;后者则认为流计算技术是最基本的,在流计算的基础之上支持批处理。SparkFlink流批世界观一切都是由批次组成。离线数据是一个大批次;而实时数据是由一个一个无限的小批次组成的。一切都是由流组成。离线数据是有界限的流;实时数据是一个没有界限的流。计算模型微批处理模型(秒级),在批处理的基础上做流处理。

ZYN的博客 2392
上一篇: INSERT ... ON DUPLICATE KEY UPDATE
下一篇: 安装python3.7初始化
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值