提交Flink Job任务:实现WordCount

一 实现Job任务的Jar包

1.1 修改pom.xml文件:添加依赖

pom.xml

<!- 根据自己使用的scala与flink的版本修改版本号 ->
    <dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-scala_2.11</artifactId>
      <version>1.11.2</version>
    </dependency>
    <dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-streaming-scala_2.11</artifactId>
      <version>1.11.2</version>
    </dependency>

1.2 创建scala Object实例FlinkStream

package com.sm.Flink_Test

import org.apache.flink.api.java.utils.ParameterTool
import org.apache.flink.streaming.api.scala._

object FlinkStream {
  def main(args: Array[String]): Unit = {
    //创建流处理环境
    val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
    //从外部命令读取参数,作为主机名和端口号
    val paramTool: ParameterTool = ParameterTool.fromArgs(args)
    val host:String=paramTool.get("host")
    val port:Int=paramTool.getInt("port")
//    val host:String="192.168.1.106"
//    val port:Int=7777

    //配置并行度,这里暂时没有配置
    //env.setParallelism(2)
    //监听端口
    val inputDataStream: DataStream[String] = env.socketTextStream(host,port)
    //对获取的数据进行WordCount
    val resultDataSet: DataStream[(String, Int)] = inputDataStream
      .flatMap(_.split(" "))
      .filter(_.nonEmpty)
      .map((_,1))
      .keyBy(0)
      .sum(1)

    //输出结果
    resultDataSet.print()
    //启动流处理任务,并命名任务名称
    env.execute("Flink word count")
  }
}

打包项目
在这里插入图片描述

二 上传Job任务运行

2.1 在Linux上启动Flink服务

启动命令(指定Flink目录下执行):

/opt/apps/flink-1.12.0/bin/start-cluster.sh

启动后的进程:
在这里插入图片描述

访问webUI :ip:8081
http://192.168.1.106:8081
在这里插入图片描述

2.2 上传jar提交任务

在这里插入图片描述

添加参数后提交
在这里插入图片描述
就可以看到任务运行着
在这里插入图片描述

2.3 发送数据并查看效果

发生数据
在这里插入图片描述

nc -lk 7777

效果:
在这里插入图片描述
到这里Flink上传Jar包新建Job任务就完成了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值