用于存储和解析文本日志和报告的理想系统

时间:2013-03-05 23:07:50

标签: database text hadoop cassandra hive

我有很多来自运行网络测试的文本报告和日志文件。我想将这些报告和日志存储在数据存储中,我可以在其中解析它们并根据解析的数据运行报告。我还希望这个系统在报告类型和数据中都是可扩展的。它接受的日志以及可用于的数据量和查询/报告。

同事建议Hadoop可能满足这一需求,我组织中的另一个团队表示他们使用Cassandra进行类似的项目(但是有更多的数据,大部分是机器生成的)。我一直在阅读关于Hadoop and Cassandra的内容,我真的不确定使用类似的内容是否过度,以及每个日志/报告类型的自定义解析器的关系数据库是否会更加清晰。

根据我对Hadoop的理解,我需要编写MapReduce函数来解析每种类型的输入数据,如果我使用{{}我认为我需要做类似的事情。 1}}。我也读过一些关于Cassandra的内容,听起来它可能有用,但我没有深入研究过。

在我的情况下使用Hadoop或Cassandra(或其他)有什么好处(如果有的话)?

任何形式的建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

这是我从你的问题描述中得到的:

  • 您有一些生成日志和文本报告的测试程序。你能否至少大致了解这些数据的大小?
  • 您希望在数据生成后对其进行分析(即不需要实时分析)
  • 您希望灵活处理可以提取和处理的数据大小,以及您可以执行的查询和分析类型

这里有一些关于你提到的工具的见解和警告:

  • 鉴于已经配置了Hadoop集群,Hive可能是最简单的解决方案:它可以让您将数据看作是一组表:SQL查询,连接等等...... Hive(粗略地)尽管您的群集很大,但您没有获得即时答案:换句话说,您可以将其用于批处理操作,而不是用于交互式网络面板等。

  • Cassandra可用于存储大量数据。它易于扩展,坚固且相对易于使用。根据您的要求,我认为可能需要考虑的是,它需要非常仔细地考虑您将用于存储数据的模式:模式将决定您之后可以做什么和不能做什么。因此,如果您想要以新的方式执行更广泛的分析或读取数据,您可能无法想象,因为数据存储在数据库中的方式可能无法实现。

我不熟悉的其他选项:HBase(基于HDFS的数据存储),Pig(如Hive,查询被编译成Hadoop作业;模型有哪些变化:而不是您需要编写的SQL查询& #34;流"。)

我建议尝试Hive(或Pig),也许使用像Amazon EMR这样的服务(这样可以避免Hadoop集群设置的麻烦)。