一、Kafka分区和消费者的关系
Kafka分区继承了一个接口,实现的是PartitionAssignor,这个接口下面有两个类,RoundRobinAssignor和RangeAssignor两种算法实现
第一种轮循方法更优
二、文件的存储机制
存储机制图
三、文件的传输机制
传输机制图
四、Spark Streaming简介
DStream 是一个数据抽象
在内部,一个DStream是通过一系列的RDDs来表示。
Spark Streaming,其实就是Spark提供的 一种对大数据实时计算的框架,它的底层实现,是基于我们学过的SparkCore的,底层还是使用的是算子操作,也就是RDD。
DStream的中文叫“离散流”,然后,它分批次提交任务,但是,底层调用的是RDD的一些算子操作,通过调用算子操作,生成新的DStream
从上图可以看出,一个DStream对应的是时间维度上的多个RDD
但是,从单个时间维度来看,DStream和RDD是一对一的关系
五、Kafka的receive方式实现WC
这种方式使用的是receive来获取数据,Receive是使用Kafka高层的ConsumerAPI来实现的
Spark-Streaming | Storm | Flink | |
---|---|---|---|
处理效率 | 有延迟 | 高 | 高 |
吞吐量 | 高 | 低 | 高 |
处理数据 | 离线+实时 | 实时 | 离线+实时 |
操作算子 | 多 | 少 | 多 |
扩展性 | 强,如机器学习/图计算 | 弱 | 弱 |