仅用java+IntelliJ IDEA+Maven搭建Flink项目

14 篇文章 1 订阅

1、背景

只在有java+intellij(自带maven)的环境快速搭建flink项目

 2、运行代码(亲测有效)

一、打开项目中的pom.xml文件,将其中依赖部分的"<scope>provided</scope>"注释(或删除)掉。

二、在IntelliJ IDEA中打开BatchJob源文件,编辑代码如下:

package com.xueai8
 
import org.apache.flink.api.scala._
 
object BatchJob {
 
  def main(args: Array[String]) {
    // 设置批执行环境
    val env = ExecutionEnvironment.getExecutionEnvironment
 
    // 得到输入数据
    val text = env.fromElements("good good study", "day day up")
 
    // 对数据进行转换
    val counts = text.flatMap { _.toLowerCase.split("\\W+") }
                   .map { (_, 1) }
                   .groupBy(0)
                   .sum(1)
 
    // 执行并输出结果
    counts.print()
  }
}

三、在文件内任何空白处,单击右键,在弹出菜单中选择"run BatchJob",执行该程序,在下方的运行窗口可以看到如下输出结果:

(up,1)
(day,2)
(good,2)
(study,1)

四、运行streaming项目

在本机提前执行    nc -lk 1111,输入aa,abc,然后执行streaming任务

import org.apache.flink.streaming.api.TimeCharacteristic
import org.apache.flink.streaming.api.scala._
import org.apache.flink.streaming.api.windowing.time.Time

object StreamingJob {
  def main(args: Array[String]) {
    // set up the streaming execution environment
    val environment: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
    environment.setParallelism(1)
    environment.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime)


    val log = environment.socketTextStream("127.0.0.1",1111)
    val value = log.map(value => {
      (value, 1)
    }).keyBy(0)
      .timeWindow(Time.seconds(10))
      .reduce((a,b)=>{(a._1,a._2+b._2)})
      .print()


    environment.execute()

  }
}

3、步骤(亲测有效)

在IntelliJ IDEA中创建Flink项目

第一步:启动IntelliJ IDEA,创建一个新的项目,如下图所示:

第二步:选择Maven项目,并选择"Create from archetype":

第三步:自己添加Flink的archetype

添加flink-quickstart-scala的archetype如下图:repository是可选的

第四步:选择对应的archetype,比如,这里我选择flink-quickstart-scala,如下所示:

第五步:指定项目的groupId、artifactId名称。这里我分别取以下名称:

  • groupId:com.xuehua
  • artifactId:FlinkScala

第六步:接下来,指定项目的Maven配置,默认就好。

第七步:指定项目的名称和项目文件所在位置。这里保持默认即可。单击【Finish】按钮,开始创建项目:

第八步:Maven会自动构建项目,最后的项目结构如下所示:

可以看出,flink-quickstart-scala快速地构建了一个基本的Flink项目框架,并生成创建了两个模板程序文件:用于流处理的StreamingJob和用于批处理的BatchJob。

注:同样的步骤,选择flink-quickstart-java,创建一个基于Java API的Flink项目框架。请自行尝试。

第九步:

注释掉maven文件中的<plugin>信息和provided信息,添加scala插件

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值