我在网络中运行100s
计算机,100s
用户访问这些计算机。每天,所有这些机器都会生成数千或更多syslogs
个Syslog
。 system failures
可以是任何日志,包括network, firewall
,application errors
,May 11 11:32:40 scrooge SG_child[1829]: [ID 748625 user.info] m:WR-SG-BLOCK-111-
00 c:Y th:BLOCK , no allow rule matched for request with entryurl:http:url on
mapping:bali [ rid:T6zcuH8AAAEAAGxyAqYAAAAQ sid:a6bbd3447766384f3bccc3ca31dbd50n ip:192.24.61.1]
等。
示例日志如下所示
Timestamp, loghost, msg, process, facility
从日志中,我提取HDFS
等字段并将其存储在Logs
中。 json format
存储在web application
中。现在,我想建立一个系统,我可以在logs
中输入查询并对{foreach $latest_article.0 as $article}
{include file='include/article-latest.html' class='col-50' title=$article.TITLE tag=ARTICLE_CATEGORY.$article.CATEGORY img=$article.THUMBNAIL view='3526' share='564'}
{/foreach}
进行分析。我希望能够进行像
现在我的问题是
答案 0 :(得分:0)
尽管可能(例如通过thrift服务器), Apache Spark的主要目标不是查询引擎,而是为流和批处理数据源构建数据管道。
如果转换只是投影字段而您想启用即席查询,听起来就像您需要另一个数据存储 - 例如ElasticSearch。另外一个好处是它带有一个Kibana,可以在一定程度上实现分析。
另一种选择是使用SQL引擎,例如 Apache Drill 。
答案 1 :(得分:-1)
Spark可能不是正确的工具,除非这些日志的大小证明了选择的合理性。
这些日志是几千兆字节的顺序吗?然后使用splunk。
这些日志的数量级是几百千兆字节吗?然后使用elasticsearch和Kibana在上面。
它们是太字节的数量级吗?然后你应该考虑一些更强大的分析架构,这里有许多替代方案,基本上以与Spark相同的方式进行批处理作业,但通常以更智能的方式。