Flink简单介绍
一、优势
1、高吞吐、低延迟、高性能
spark:高吞吐、高性能,用微批处理实现流式计算,无法达到低延迟;
storm:低延迟、高性能,无法达到高吞吐
2、支持事件时间(event time)
spark streaming只支持系统时间(process time),即消息到达计算框架处理时的系统主机时间,不支持事件发生的时间。
3、有状态计算
流式计算中将中间结果保存在内存或文件系统中,无需每次读取全部原始数据,提高性能,可支持TB级的状态管理。
4、窗口(Windows)操作
基于Time、Count、Session、Data-driven等类型窗口操作,可以自定义窗口触发机制。
5、基于轻量级分布式快照(snapshot)实现的容错
基于snapshot的checkpoint,设置检查点时间,可周期性地将状态信息持久化存储,实现容错。默认只保留最新的checkpoint,应用结束时会删除,可设置保留份数和不删除。
6、独立的内存管理
减少JVM GC对系统的影响,数据序列化存储在内存,利用率更高效。
7、Save Point(保存点) savepoint和checkpoint(https://blog.csdn.net/qq_26654727/article/details/83833517)
手动创建,应用终止时,将应用执行的快照保存在存储介质中,用于更改job,版本更新时手动创建保存点,便于恢复之前状态。
8、log路径修改:
#/bin/config.sh 若flink-conf.yaml配置了env.log.dir,则使用配置的路径,否则默认log目录为FLINK_ROOT_DIR/log FLINK_CONF_FILE="flink-conf.yaml" YAML_CONF=${FLINK_CONF_DIR}/${FLINK_CONF_FILE} KEY_ENV_LOG_DIR="env.log.dir" DEFAULT_FLINK_LOG_DIR=$FLINK_ROOT_DIR_MANGLED/log FLINK_LOG_DIR=$(readFromConfig ${KEY_ENV_LOG_DIR} "${DEFAULT_FLINK_LOG_DIR}" "${YAML_CONF}") #docker运行flink 默认taskmanager不写入日志文件,需修改docker-entrypoint.sh脚本中 start-foreground 为start $FLINK_HOME/bin/taskmanager.sh start "$@"
仅作为笔记使用,记录信息过于简洁。