Flume
1个进程:
source channel sink
Kafka
3个进程:
producer(生产者)-- broker(进程)–consumer(消费者)
flume–kafka–sparkstreaming/flink
主要使用生产者与消费者的api
Topic
kafka需要根据业务创建多个主题
需要注意的一点是,最终数据是落在磁盘上的文件夹(存储在linux系统中)主要存储在logs中
kafka一个主题可以有多个分区,比如一个topic为test有三个分区,最终会在logs文件中有个test-0,test-1,test-2三个文件夹
kafka自身的分区是有序的,就是说单分区有序,如何做到全局有序呢(非常重要)
kafka部署
生产中主要采用的kafka版本为:kafka_2.11-0.10.0.0cdh中没有kafka,kafka是独立分支
2.11是指scala采用2.11.8常用版本,而为什么采用0.10.0如下图所示:
kafka安装注意事项:
事先有安装kafka的时候,需要在zookeeper中去查看是否有kafka存留,如果有需要清除掉
# A comma seperated list of directories under which to store log files
log.dirs=/opt/modules/kafka_2.11-0.10.0.0/kafka-logs
不要被log误解,这里的log.dirs配置的是kafka的数据落入磁盘的位置
zookeeper.connect=bigdata-pro01.kfk.com:2181,bigdata-pro02.kfk.com:2181,bigdata-pro03.kfk.com:2181/kafka
这里面后面加入的/kafka是为了在zookeeper中生成一个kafka文件夹来存储kafka信息,如果不加入的话,会在根目录下生成很多个kafka文件夹 对于查询与清理都非常有帮助