这几天重新回顾离线数仓的项目,一边看一边重新梳理了架构图,主要是重画了flume和kafka这块,注意一下生产flume和消费flume里面的设计,hive的建仓太复杂,画不出来
采集Flume- TailDir Source:用TailDir Source,好处:断点续传、多目录。Exec Source 不能断点续传。Spooling Directory Source只能单目录。
- LogInterceptor:拦截器,过滤脏数据
- Kafka Channel:省去sink,直接传kafka效率更高(Kafka Channel数据存在kafka里,所以数据是存在磁盘中的)
- Kafka Source:从kafka读取数据
- TimestampInterceptor:flume会用当前的系统时间来决定输出到HDFS路径的时间,而flume读取数据的时候可能已经是第二天了,那这条数据就会被发往第二天的路径,我们希望的是根据日志里的事件时间来决定存储在HDFS中的路径,所以用拦截器读取日志的事件时间
- File Channel:channel存在磁盘中,比较慢但是安全。还有Memory Channel,更快但是数据存在JVM堆中,数据可能会丢失
- HDFS sink:注意这里HDFS可能会产生大量小文件,教程里修改了几个配置,做到了文件每128M时滚动形成新文件。
单分区单topic
Sqoopsqoop有多种同步策略,需要注意
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)