一、Intellij IDEA 环境配置

1、创建Maven工程

1.1、开发环境

Maven && JDK


1.2、Pom配置

Compiler Configuration

在pom.xml添加:

<properties><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.source>1.8</maven.compiler.source>
</properties><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.6.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins>
</build>

Flink Dependency
在pom.xml添加:

<dependencies><!-- https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-scala --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-scala_2.11</artifactId><version>1.10.1</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.flink/flink-clients --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-clients_2.11</artifactId><version>1.10.1</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.7</version><scope>runtime</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version><scope>runtime</scope></dependency>
</dependencies>

然后IDEA就会自动帮我们添加依赖


1.3、Log配置

log4j.properties
在resources下建立log4j.properties文件并添加(linux上flink安装目录conf下的log4j-console.properties内容):

# This affects logging for both user code and Flink
log4j.rootLogger=INFO, console# Uncomment this if you want to _only_ change Flink's logging
log4j.logger.org.apache.flink=INFO# The following lines keep the log level of common libraries/connectors on
# log level INFO. The root logger does not override this. You have to manually
# change the log levels here.
log4j.logger.akka=INFO
log4j.logger.org.apache.kafka=INFO
log4j.logger.org.apache.hadoop=INFO
log4j.logger.org.apache.zookeeper=INFO# Log all infos to the console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n# Suppress the irrelevant (wrong) warnings from the Netty channel handler
log4j.logger.org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline=ERROR, console

1.4、添加Scala支持

在main文件下新建一个scala目录,并设置为source root

添加scala支持


二、案例:Flink单词计算本地实战

代码:

package demo
import org.apache.flink.streaming.api.scala._
import org.apache.flink.streaming.api.windowing.time.Time
object WindowWordCount {def main(args: Array[String]): Unit = {val host = "node110"val port = 9999val windowSeconds = 5//get envval env = StreamExecutionEnvironment.getExecutionEnvironment//create data sourceval source = env.socketTextStream(host, port)val counts = source.flatMap { line => line.toLowerCase.split("\\W+").filter(word => word.nonEmpty) }.map { word => (word, 1) }.keyBy(0).timeWindow(Time.seconds(windowSeconds)).sum(1)//add sinkcounts.print()//executeenv.execute("Window Stream Word Count with paremters")}
}

测试:
linux执行命令:nc -lk 9999


三、Flink集群运行实战

3.1、代码修改

if(args.length != 3){println("Usage: WindowWordCount <socketHost> <socketPort> <windowSeconds>")System.exit(1)
}
val host = args(0)
val port = args(1).toInt
val windowSeconds = args(2).toInt

3.2、程序打包 & 上传

3.3、运行

先开启一个会话(注意先开启,否则执行会出现一堆东西)

再开一个会话


输入数据:

网页查看:


四、Dataset API实现(单词计数)

数据文件 input.txt:

I am a student
I love the world

代码:

package demoimport org.apache.flink.streaming.api.scala._
import org.apache.flink.api.scala.ExecutionEnvironmentobject WordCount {def main(args: Array[String]): Unit = {//get envval env = ExecutionEnvironment.getExecutionEnvironment//create data sourceval source = env.readTextFile("D:\\java test\\flink_test\\src\\main\\resources\\input.txt")val counts = source.flatMap { line => line.toLowerCase.split("\\W+").filter(word => word.nonEmpty) }.map { word => (word, 1) }.groupBy(0).sum(1)//add sinkcounts.writeAsText("D:\\java test\\flink_test\\target\\output00")//executeenv.execute("Batch Word Count")}
}

结果

学习笔记Flink(五)—— Flink开发环境配置及运行实例(单词计数)相关推荐

  1. React Native学习笔记一之搭建开发环境

    因为项目需要,今天开始正式学习React Native,先来搭建个开发环境 忐忑的心情 因为项目比较急,而且客户要求使用React Native开发,只能先学点基础然后在项目中使用的时候,边做边学了, ...

  2. AutoGLuon学习笔记(一):环境配置与API初识

    AutoGLuon学习笔记(一):环境配置与API初识 环境配置 CUDA安装 Autogluon安装 图片分类 数据集导入和处理 拟合模型 预测新图片 测试集准确率 保存模型 超参数优化 模型范围设 ...

  3. 51单片机学习笔记1 简介及开发环境

    51单片机学习笔记1 简介及开发环境 一.51单片机 1. STC89C52单片机简介 2. 命名规则 3. 封装 (1)PDIP (2)LQFP (3)PLCC (4)PQFP 二.STC8051结 ...

  4. 张高兴的 Xamarin.Android 学习笔记:(一)环境配置

    最近在自学 Xamarin 和 Android ,同时发现国内在做 Xamarin 的不多.我在自学中间遇到了很多问题,而且百度到的很多教程也有些过时,现在打算写点东西稍微总结下,顺便帮后人指指路了. ...

  5. Python学习笔记2-搭建Python开发环境

    1  Python开发环境概述 所谓"工欲善其事,必先利其器".在正式学习Python开发前,需要先搭建Python开发环境.Python是跨平台的开发工具,可以在多个操作系统上进 ...

  6. Hadoop学习笔记—1.基本介绍与环境配置

    一.Hadoop的发展历史 说到Hadoop的起源,不得不说到一个传奇的IT公司-全球IT技术的引领者Google.Google(自称)为云计算概念的提出者,在自身多年的搜索引擎业务中构建了突破性的G ...

  7. NXP RT1064学习笔记(一)— 开发环境

    最近在做RT1064的开发,网上能找到的资料不多,基本上都是NXP官方的资料,于是决定自己写笔记做个记录. i.MX RT1064 简介 i.MX RT1064 处理器属于全新的处理器系列,采用恩智浦 ...

  8. JAVA学习笔记_五JAVA开发中的WEB前端技术

    css 字体属性: font-size   font-style   font-family   font-weight   font 设置字体font-family时,中文.英文字体设置时的顺序,英 ...

  9. 鸿蒙系统究竟是PPT秀还是有真材实料?鸿蒙HarmonyOS开发环境搭建与运行Demo

    前言: 对于华为而言,做鸿蒙的最好答案,也许不是为了追求眼前的速胜,而是为了不下牌桌等待机遇. 手机领域,鸿蒙式微.但物联网领域,技术难度并不大,虽然行业仍需要时日才会爆发,但依然是值得卡位的趋势. ...

最新文章

  1. matlab-矩阵应用
  2. 【Flask】SQLALchemy的介绍
  3. python面对对象编程------3:写集合类的三种方法
  4. 文件的输入/输出操作
  5. vim配置vimrc详解
  6. 前端框架这么火,还有必要学好原生 JavaScript 吗?
  7. 代码精进之路读后感(三)
  8. C语言解决迭代递推问题
  9. Python之logging模块
  10. JBOSS集群技术升级版解决方案分享(图示篇)
  11. 【DIY装机】华硕主板驱动安装失败的问题
  12. PostgreSQL 存储过程(Procedures)和函数(Functions)的区别
  13. Web性能优化:雅虎35条
  14. kafka面试题整理
  15. 基于ERDAS软件的高分三号(GF-3)SAR影像的预处理
  16. pwm脉宽调制c语言程序,MCS-51系列单片机C语言编程PWM脉宽调制器程序模板
  17. Unity-Some objects were not cleaned up when closing the scene.
  18. 审计系统---堡垒机项目之表结构设计
  19. android手机软件安装位置,改变Android手机软件安装位置方法
  20. Linux 命令系统

热门文章

  1. python h5游戏_从零开始制作H5人脸融合小游戏
  2. 数字字符串转化为字母组合的种数
  3. Tableau实战系列浏览 Tableau 环境(一) -初识tableau操作界面
  4. MATLAB实战系列(十四)-如何通过YALMIP和CPLEX求解小规模(CVRP)路径调度问题(附MATLAB代码)
  5. 机器学习算法与Python实践之(一)k近邻(KNN)
  6. pycharm安装怎么选_客厅窗帘怎么选 客厅窗帘怎么安装好看
  7. 树转化为二叉树_森林转化为二叉树(详解版)
  8. 神经元模型及网络结构
  9. 人工智能的发展趋势和行业岗位
  10. 关于mybatis里面的Executor--转载