У меня есть требование от моего клиента обработать файл журнала сервера приложений (Tomcat) для внутреннего сервера приложений на основе REST, который развернут в кластере. Клинт хочет создать отчет «доступ» и «частота» из этих данных с разными параметрами.
Мой первоначальный план состоит в том, чтобы получить эти данные из журнала сервера приложений --> отправить в Spark Streaming с помощью kafka и обработать данные --> сохранить эти данные в HIVE --> использовать zeppelin для возврата этих обработанных и централизованных данных журнала и создания отчетов. согласно требованию клиента.
Но, насколько мне известно, в Kafka нет функции, которая может считывать данные из файла журнала и отправлять их в брокер Kafka самостоятельно, в этом случае у нас есть процесс задания планировщика, который время от времени будет читать журнал и отправлять их в Kafka. broker , что я не предпочитаю делать, так как в этом случае не будет реального времени и может возникнуть проблема с синхронизацией, о которой нам придется беспокоиться, поскольку у нас есть 4 экземпляра сервера приложений.
Другой вариант, я думаю, у нас есть в этом случае, это Apache Flume.
Может ли кто-нибудь предложить мне, какой из подходов будет лучше в этом случае, или если в Kafka у нас есть какой-либо процесс для самостоятельного чтения данных из файла журнала, и какие преимущества или недостатки мы можем иметь в функции в обоих случаях?
Я предполагаю, что еще один вариант — это Flume + kakfa вместе, но я не могу предполагать, что произойдет, так как я почти ничего не знаю о flume.
Любая помощь будет высоко оценена ...... :-)
Большое спасибо ....