幕客网学习摘要记录1
1. flink了解
flink在2014年成为apache顶级项目,可以处理流式数据和批式数据。主要用于流式处理,和spark streaming和storm是同一类别框架。
flink处理数据是事件级别,延迟毫秒级别。
flink是主从架构,一般生产环境,在yarn上运行。
flink默认ui端口8081。
flink也是分层式的框架,最底层是部署层,然后是core层,对外api层,library层。flink和spark类似,也有ml,图处理,类sql模块等等。
编程的思想和spark基本一致。
2.kafka
由linkedin开源,是apache顶级项目。
是流处理平台,可以作为数据管道,数据处理,数据存储。
是一个消息队列,但是不仅仅是一个消息队列。
消费者数目少于等于partition数目
订阅者的数量要小于等于partition的数量
所有的读和写都从lead进,fllower只是作为备份。(partition)
slf4j注解,getter,setter注解
kafka内部有一个offsets topic来存储被消费的topic的offset,来保证原子性
kafka高级特性-零拷贝----操作系统操作内核空间,应用程序操作用户空间,数据从本地磁盘传输到网络,要经历如下步骤:
(1)数据从本地到内核空间页缓存(Read buffer)
(2)内核空间缓存到用户空间缓存
(3)应用程序处理完后写回socket缓存(Socket buffer)
(4)socket缓存复制到网卡缓存
0拷贝,是指内核空间缓存和用户空间缓存的交互为0.
(1)数据从本地到内核空间页缓存
(2)内核空间页缓存到网卡缓存(NIC buffer)