应用服务器日志流程

时间:2017-07-24 15:18:37

标签: apache-spark apache-kafka hadoop2 flume hadoop-streaming

我的客户要求处理部署在集群上的后端基于REST的App服务器的应用程序(Tomcat)服务器日志文件。克林特希望产生"访问"和"频率"从具有不同参数的数据报告。

我的初步计划是从App服务器日志中获取这些数据 - >使用kafka推送到Spark Streaming并处理数据 - >将这些数据存储到HIVE中 - >使用zeppelin来获取那些已处理和集中的日志数据,并根据客户要求生成报告。

但据我所知,Kafka没有任何能够从日志文件中读取数据并将其自己发布到Kafka代理中的功能,在这种情况下,我们编写了一个调度程序作业进程,该进程将不时读取日志并发送他们在Kafka经纪人中,我不喜欢这样做,因为在这种情况下它不会是实时的,并且可能存在同步问题,我们必须为此烦恼,因为我们有4个应用服务器实例。

另一种选择,我认为我们在这种情况下是Apache Flume。

任何人都可以建议我在这种情况下哪一个更好的方法,或者如果在Kafka中,我们有任何进程可以自己从日志文件中读取数据,以及我们在两个方面的功能有哪些优缺点例

我想另外一个选择是Flume + kakfa,但我不能推测会发生什么,因为我几乎不知道水槽。

任何帮助都将受到高度赞赏......: - )

非常感谢....

1 个答案:

答案 0 :(得分:0)

您可以使用Kafka Connect(文件源连接器)来读取/使用Tomcat日志文件&把他们推到卡夫卡。然后,Spark Streaming可以使用Kafka主题并流失数据

tomcat - >日志---> kafka connect - > kafka - > spark - >蜂房