Flin基础学习(三)

DataStream API 开发

1 入门案例

1.1 Flink 流处理程序的一般流程

  1. 获取 Flink 流处理执行环境
  2. 构建 source
  3. 数据处理
  4. 构建 sink

1.2 示例

编写 Flink 程序,用来统计单词的数量。

1.3 步骤

  1. 获取 Flink 批处理运行环境
  2. 构建一个 socket 源
  3. 使用 flink 操作进行单词统计
  4. 打印
    说明:如果 linux 上没有安装 nc 服务 ,使用 yum 安装
yum install -y nc

2 输入数据集 Data Sources

Flink 中你可以使用 StreamExecutionEnvironment.addSource(source) 来为你的程序添 加数据来源。
Flink 已 经 提 供 了 若 干 实 现 好 了 的 source functions ,当 然 你 也 可 以 通 过 实 现 SourceFunction 来自定义非并行的 source 或者实现 ParallelSourceFunction 接口或者扩展 RichParallelSourceFunction 来自定义并行的 source。

2.1 Flink 在流处理上常见的 Source

Flink 在流处理上常见的 Source ,Flink 在流处理上的 source 和在批处理上的 source 基本一致。
大致有 4 大类
基于本地集合的 source(Collection-based-source)
基于文件的 source(File-based-source)- 读取文本文件,即符合 TextInputFormat 规 范 的文件,并将其作为字符串返回
基于网络套接字的 source(Socket-based-source)- 从 socket 读取。元素可以用分隔符 切分。
自定义的 source(Custom-source)

2.2 基于 kafka 的 source 操作

Kafka 基本操作
0、kafka 集群启动与停止
注意事项:在 kafka 启动前,一定要让 zookeeper 启动起来。
各个节点执行以下命令将 kafka 进程启动在后台

cd /export/servers/kafka_2.11-1.0.0 
nohup bin/kafka-server-start.sh config/server.properties 2>&1 &

各个节点执行以下命令停止 kafka 集群

cd /export/servers/kafka_2.11-1.0.0 
bin/kafka-server-stop.sh

1、创建 topic

cd /export/servers/kafka_2.11-1.0.0 
bin/kafka-topics.sh --create --zookeeper node01:2181 --replication-factor 2 --partitions 3 --topic test

2、查看主题命令

cd /export/servers/kafka_2.11-1.0.0 
bin/kafka-topics.sh --list --zookeeper node01:2181,node02:2181,node03:2181

3、生产者生产数据

cd /export/servers/kafka_2.11-1.0.0 
bin/kafka-console-producer.sh --broker-list node01:9092,node02:9092,node03:9092 --topic test

4、消费者消费数据

cd /export/servers/kafka_2.11-1.0.0 
bin/kafka-console-consumer.sh --from-beginning --topic test --zookeeper node01:2181,node02:2181,node03:2181

5、运行 describe topics 命令

cd /export/servers/kafka_2.11-1.0.0 
bin/kafka-topics.sh --describe --zookeeper node01:2181 --topic test

6、增加 topic 分区数

cd /export/servers/kafka_2.11-1.0.0
bin/kafka-topics.sh --zookeeper zkhost:port --alter --topic topicName --partitions 8

7、增加配置

cd /export/servers/kafka_2.11-1.0.0 
bin/kafka-topics.sh --zookeeper node01:2181 --alter --topic test --config flush.messages=1

8、删除配置

cd /export/servers/kafka_2.11-1.0.0 
bin/kafka-topics.sh --zookeeper node01:2181 --alter --topic test --delete-config flush.messages

9、删除 topic

bin/kafka-topics.sh --zookeeper node01:2181 --delete --topic test

3 DataStream 的 Transformation

3.1 KeyBy

逻辑上将一个流分成不相交的分区,每个分区包含相同键的元素。在内部,这是通过散 列分区来实现的

3.2 Connect

用来将两个 dataStream 组装成一个 ConnectedStreams 而且这个 connectedStream 的组成结构就是保留原有的 dataStream 的结构体;这样我们 就可以把不同的数据组装成同一个结构

3.3 Split 和 select

Split 就是将一个 DataStream 分成两个或者多个 DataStream
Select 就是获取分流后对应的数据

4 数据输出 Data Sinks

4.1 将数据 sink 到本地文件

4.2 Sink 到本地集合

4.3 Sink 到 HDFS

4.4 sink 到 kafka

4.5 sink 到 mysql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值