这两天学习了Flume + Kafka + ZooKeeper + Spark Streaming + Drools + ELK进行大数据架构,有很多的体会和总结。这边将我的总结记录下来给感兴趣的同学提供参考参考,帮助大家可以更快的入门。
【架构的数据流转】
1、首先flume从日志中采集数据,这个日志可以是各种来源,比如说日志文件或者Socket通信。
2、然后flume将采集的数据推送到Kafka中,这个时候flume作为kafka的一个生产者。
3、在Kafka的模型中,ZooKeeper作为一个分布式的状态管理系统,监控着Kafka的Topic和Topic的partition分区,监控生成者和消费者状态。保证整个生产和消费的高可用。
4、然后就是Spark部分,Spark这边提交一个处理函数的jar包,然后Spark将数据处理方法传递到数据服务器上进行计算,就是方法跟着数据动。
5、在Spark提交的处理数据函数里面,主要是连接kafka获取数据然后进行规则过滤。
6、Drools的规则过滤阶段主要是加载Drl规则文件,然后Drl规则文件对传递到WorkingMemory的Fact对象进行任意的读写操作,然后通过Fact对象将结果记录到ELK中。
7、然后可以通过ELK进行数据进行搜索。
8、ELK作为一个公共的搜索系统,可以为很多系统提供服务,然后ELK本身提供很多的API,可以通过API对规则处理过的数据进行监控和报警。
因为之前没有接触过大数据的开发,现在通过这两天对整个框架的熟悉,感觉以前有些业务都通过大数据框架去处理。
</