1.Flink学习之旅(一)
其他
2020-03-18 10:20:46
阅读次数: 0
2. 登峰大数据(微信公众号)
3. Flink简介
- Apache Flink 是一个开源
框架
和分布式
处理引擎,用于在无边界
和有边界
数据流上进行有状态
的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。
- 总述
- 处理无界和有界数据
- 部署应用到任意地方
- Flink 集成了所有常见的集群资源管理器,例如
Hadoop YARN
、 Apache Mesos
和 Kubernetes
,但同时也可以作为独立集群
运行。
- 运行任意规模应用
- Flink
旨在
任意规模上运行有状态
流式应用
- Flink 很容易维护非常大的应用程序状态。其异步和增量的检查点算法对处理延迟产生最小的影响,同时保证精确一次状态的一致性。
- 利用内存性能
- 特性
- 批流一体化
- 精密的状态管理
- 事件时间支持
- 精确一次的状态一致性保障
4. Flink常见的几类应用
4.1. 事件驱动型应用
4.2. 数据分析应用
电信网络质量监控
移动应用中的产品更新及实验评估分析
消费者技术中的实时数据即席分析
大规模图分析
4.3. 数据管道应用
电子商务中的实时查询索引构建
电子商务中的持续 ETL(Extract-Transform-Load)
5. Flink的安装部署和尝鲜
5.1. 本地安装教程
5.2. WordCount演示(scala版本)
-
build.sbt
name := "FlinkDemo"
version := "0.1"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"org.apache.flink" % "flink-core" % "1.10.0",
"org.apache.flink" %% "flink-scala" % "1.10.0",
"org.apache.flink" %% "flink-streaming-scala" % "1.10.0",
"org.apache.flink" %% "flink-clients" % "1.10.0"
)
-
主题逻辑源代码
import org.apache.flink.api.java.utils.ParameterTool
import org.apache.flink.api.scala._
import org.apache.flink.streaming.api.scala.{DataStream, StreamExecutionEnvironment}
import org.apache.flink.streaming.api.windowing.time.Time
/**
* @author xiaofan
*/
case class WordWithCount(word: String, count: Int)
object SocketWindowWordCount {
def main(args: Array[String]): Unit = {
val port: Int = try {
ParameterTool.fromArgs(args).getInt("port")
} catch {
case e: Exception => {
System.err.println("No port specified. Please run 'SocketWindowWordCount --port <port>'")
return
}
}
// 获得执行环境
val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
// 获得输入数据
val text: DataStream[String] = env.socketTextStream("192.168.1.27", port, '\n')
// 处理数据
val windowCounts: DataStream[WordWithCount] = text.flatMap(_.split("\\s"))
.map(x => WordWithCount(x, 1))
.keyBy("word")
.timeWindow(Time.seconds(5), Time.seconds(1))
.sum("count")
// 以单线程打印结果
windowCounts.print().setParallelism(1)
env.execute("Socket Window WordCount")
}
}
-
启动本地服务
nc -lk 9999
-
打jar包,提交flink项目
./flink run /home/hadoop/fanjh/flinkdemo_2.11-0.1.jar --port 9999
-
web前端展示效果
6. 路漫漫其修远兮,吾将上下而求索
发布了85 篇原创文章 ·
获赞 12 ·
访问量 3722
转载自blog.csdn.net/fanjianhai/article/details/104461043