Flink入门到清明(持续上香中)

本文介绍了Flink的基础开发步骤,包括Environment、Source、Transform和Sink。讲解了如何建立Flink运行环境,从不同来源获取数据,对数据进行操作,并将处理结果存储或发送到指定系统。示例中提到了连接Kafka、Redis、MongoDB,以及使用Flink进行词频统计和机器温度报警等应用。
摘要由CSDN通过智能技术生成

和其他所有的计算框架一样,flink也有一些基础的开发步骤以及基础,核心的API,从开发步骤的角度来讲,主要分为四大部分

1.Environment

Flink Job在提交执行计算时,需要首先建立和Flink框架之间的联系,也就指的是当前的flink运行环境,只有获取了环境信息,才能将task调度到不同的taskManager执行。而这个环境对象的获取方式相对比较简单

2.Source

Flink框架可以从不同的来源获取数据,将数据提交给框架进行处理, 我们将获取数据的来源称之为数据源.

3.Transform

算子对数据进行操作后面我会详细介绍

4.Sink

在Flink中所谓的Sink其实可以表示为将数据存储起来的意思,也可以将范围扩大,表示将处理完的数据发送到指定的存储系统的输出操作

之前我们一直在使用的print方法其实就是一种Sink。

 简单书写一个flink的应用工程

这里新建一个maven工程项目myflink刚开始学习的话我现在本地window下玩flink flink有多种写法 可以用java书写 也可以用scala书写 相比较java,scala书写对于flink来说更符合

//flink包     
<dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-scala_2.11</artifactId>
      <version>1.7.2</version>
    </dependency>
    <dependency>
//flink streaming包
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-streaming-scala_2.11</artifactId>
      <version>1.7.2</version>
    </dependency>
    <dependency>
//flink 连接hadoop包
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-shaded-hadoop-2-uber</artifactId>
      <version>2.7.5-9.0</version>
    </dependency>
//flink 连接kafka包
    <dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-connector-kafka_2.11</artifactId>
      <version>1.10.1</version>
    </dependency>
import org.apache.flink.streaming.api.scala._

case class WaterSensor(id:String,ts:Long,high:Double)
object MyExp1{
  def main(args: Array[String]): Unit = {
// 流式数据处理环境
    val env = StreamExecutionEnvironment.getExecutionEnvironment
//这个数组是自己造的先简单的查看一下
//    val ds = env.fromCollection(Seq(
//      WaterSensor("ws_001", 1577844001, 45.0),
//      WaterSensor("ws_002", 1577844015, 43.0),
//      WaterSensor("ws_003", 1577844020, 42.0)
//    ))
//
//读hdfs上的文件 如果是本地的修改地址即可 注意要导入连接hdfs的包 不然会报错
val ds = env.readTextFile("hdfs://192.168.80.181:9000/data/userbehavior/UserBehavior.csv")
    ds.print()
    env.execute("one")
  }
}

 

 文件就全部读取到了

第二步 连接kafka上读取文件

启动kafka   kafka-server-start.sh /opt/soft/kafka200/config/server.properties

创建一个mydemo消费者

kafka-topics.sh --zookeeper 192.168.80.181:2181 --create --topic demo --partitions 1 --replication-factor 1

开启消费

kafka-console-producer.sh --broker-list 192.168.80.181:9092 --topic demo

开启监听

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值