上传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任务就完成了